バッチ開発初心者が躓きやすいと感じたところ


1.変数の定義

下記のように書くと空白も認識されて変数に代入されてしまう。
(他の言語に慣れているとついやってしまう)

set value = hoge

下記のように記述するのが正解です。

set value=hoge

2.if文、for文でのエラー

if文、for文で条件式とカッコの間に
スペースを入れないと、エラーとなる。

if [条件文](
 [処理]
)
rem コマンドの構文が誤っています
if [条件文] (
 [処理]
)
rem 処理が実行される

3.forループの中で変数が置き換わらない

遅延環境変数の展開というものがあるらしい。
ざっくり対処法を述べると下記をバッチの上部に記載する。

setlocal enabledelayedexpansion

バッチ内では普通、変数の呼び出しにパーセント記号「%」を用いるが
代わりに「!」を用いる。

!value!