バッチファイルのコメント

バッチファイルのコメントについてのメモです。

バッチファイルのコメント

バッチファイルのコメントを書く方法は、大きくわけて2つある。

  • 行頭にremを書く
  • 行頭に「::」を書く

どちらも1行コメントであり、行末までがコメントとなる。複数行コメントや行末コメントを書く方法は、おそらく無い。*1

REMによるコメント
  • remの直後に半角スペースまたはタブが必要。
  • 半角スペースやタブによるインデントは可能。
  • rem自体はコマンドである。
    • 「rem /?」でヘルプを表示できる。
    • 「@echo on」でコマンドエコーが表示される。
「::」によるコメント
  • 半角スペースやタブによるインデントは可能。
  • 1つ目の「:」によって、ラベル扱いされるらしい。
    • しかし、gotoの飛び先には指定できない。(エラーになる)
    • そもそも、常に正しく動作するのかがよくわからない。
REMによるコメントと「::」によるコメントで違いが出る例
rem 正しく動作する
if "%FOO%" == "" (
    rem コメント
)
rem if文の中身が空と判断され、エラーが発生する
if "%FOO%" == "" (
    ::コメント
)
複数行をコメントアウトする例
rem 複数行をコメントアウトする (goto使用)

goto :END
echo 1
echo 2
echo 3
:END
rem 複数行をコメントアウトする (if使用)

if 1 == 0 (
echo 1
echo 2
echo 3
)
擬似的に行末コメントを実現する (2010/07/30追記)

REMはコマンドなので、他のコマンドの後に「&」を使って同じ行に書く事ができる。このため、「<コマンド> &rem コメント」のようにすると、行末コメントのように見せることができる。また、REMは実行される必要はないので、「&」の代わりに「&&」や「||」を使うこともできる。*2

rem 擬似的に行末コメントを実現する

echo test1 &rem コメント
echo test2 &&rem コメント
echo test3 ||rem コメント

ただし、行末コメントだからといってコマンドの後に書くとは限らないので、常に使える方法ではない。

*1:擬似的に実現する方法は、後ろの方を読んでください。

*2:大して見やすいわけではないので、お勧めはしません。