プログラムを書くときに、コードの目的やゴールを説明するのに、コメントを使います。
バッチファイルでも、コメントを書くことができます。
コメントの書き方
『rem』コマンドを使う
バッチファイルでは、コメントを書くのに『rem』コマンドを使います。
『rem コメント』のように書きます。大文字で『REM』のように書いても大丈夫です。
@echo off
rem これはコメントです
REM これもコメントです
pause
『@echo off』は、バッチファイルを実行したときに、コマンドを表示させないようにするものです。『pause』は、コマンドプロンプトを閉じないように書いています。
『@echo off』については、こちらの記事で解説しています。
『rem』コマンドは、文の途中に書くことはできません。
以下のバッチファイルを実行すれば『Hello,World rem これは表示される』と表示されます。
@echo off
echo Hello,World rem これは表示される
pause
『:』ラベルを使う
『rem』コマンド以外の方法に、『:』を使う方法があります。
『:』は、『goto』コマンドに対するラベルを表す意味があります。
これを利用してをコメントを書く方法です。『:』の後ろにスペースは、あってもなくても問題ありません。
@echo off
:これはコメントです
: これもコメントです
pause
ちなみに、ラベル本来の使い方は次のようなものです。
以下のバッチファイルは、3行目の『goto』コマンドで、7行目の『:label』までジャンプするので、5行目は実行されません。
@echo off
goto label
echo gotoコマンドによって表示されません
:label
pause
『:』でコメントを書く方法は、本来のコメントの書き方ではないので、意図しない動作となるときがあるので、注意が必要です。
例えば、以下のバッチファイルでは、3行目はコメントのつもりでラベルを書いており、6行目は本来のラベルとして書いたものです。
4行目が1度表示された後は、7行目が繰り返し何度も表示されるのを想定しています。
@echo off
:メイン処理
echo コメントとして書いていた『メイン処理』
:メイン処理
echo gotoのラベルとして書いていた『メイン処理』
goto メイン処理
上のバッチを実行すれば、次のようになります。実行すれば、無限ループになるので、実行してしまったときは『Ctrl + C』で止めてください。
コメントとして書いていた『メイン処理』
gotoのラベルとして書いていた『メイン処理』
コメントとして書いていた『メイン処理』
gotoのラベルとして書いていた『メイン処理』
コメントとして書いていた『メイン処理』
gotoのラベルとして書いていた『メイン処理』
.
.
.
3行目も本来はラベルのため、9行目の『goto』コマンドで3行目にジャンプしているため、想定した動きにはなりません。
『goto』のラベルと区別するために、『::』のようにコメントを書く方法もあります。
@echo off
::ラベルと区別するために『:』を2つ使う
pause
複数行のコメントの書き方
複数行のコメントも書くことができます。
『rem/ || (この部分にコメントを書く)』のように書くことで、複数行にわたってコメントを書くことができます。
@echo off
rem/ || (
ここは表示されません
ここも表示されません
複数行のコメントです
)
pause
『||』は、『コマンド1 || コマンド2』という形で使われ、コマンド1が失敗した場合、コマンド2が実行されます。
コマンド1が成功した場合は、コマンド2は実行されません。
『()』でくくった部分は、まとめて扱われます。
『rem/』は、コマンドが成功したと評価されるため、『||』より後ろの部分、つまり『()』でくくった部分は、実行されません。
これを利用して、複数行にコメントを書くことができます。
閉じ括弧『 ) 』をコメントとして書く場合は『^』を使用してエスケープします。
@echo off
rem/ || (
ここは実行されません
(閉じ括弧はエスケープします^)
)
pause
- コマンド1 || コマンド2:コマンド1が失敗したら、コマンド2を実行する。
- ():複数のコマンドをまとめる
まとめ
バッチファイルでコメントを書くには、次のような方法があります。
- 『rem』コマンドを使う
- 『:』ラベルを使う
- 『::』ラベルと区別するために2つ続ける
- 『rem/ || ()』を使用すれば複数行のコメントにできる
バッチファイルを使えば、いろいろな作業を自動化することができます。
以下のようなこともバッチファイルを使えば行うことができます。