rem - コメント
バッチファイルを後から見返したり、他の人に渡したりする場合は、処理の意図をコメントとして残しておくと読みやすくなります。
Windows のバッチファイルで正式にコメントを書く方法として使われるのが rem コマンドです。
この記事では、rem の基本、@echo off や @rem との関係、よく見かける :: との違いを順番に説明します。
コピペ用の早見表
| やりたいこと | 書き方 |
|---|---|
| 1行コメントを書く(基本) | rem コメント |
| コメント行を画面に表示しない | @rem コメント |
| コマンドの行末にコメントを書く | echo hello & rem コメント |
| 1行だけ一時的に無効化する | 行頭に rem を付ける |
| 複数行をまとめて無効化する | goto skip_block と :skip_block で挟む(下記) |
| 簡易的に書く(非推奨) | :: コメント |
rem コマンドの基本
コメントを書く基本形は次の通りです。
rem コメント
たとえば、次のように書けます。
@echo off
setlocal
rem 好きな果物を入力してもらう
echo 好きな果物を入力してください。
set /p fruit=例:りんご
endlocal
このバッチファイルを実行すると、コメント自体は処理の説明として残りますが、画面に出したいメッセージは echo の内容だけです。
なぜコメントが画面に見えることがあるのか
rem はコメントを表示するコマンドではありません。
それでも画面にコメントが見えることがあるのは、コマンドエコーが有効な状態で、その行自体が表示されているからです。
setlocal
rem 好きな果物を入力してもらう
echo 好きな果物を入力してください。
set /p fruit=例:りんご
endlocal

中小企業経営者のためのRPA入門 RPA導入を成功させる方法

60分でわかる! AIエージェント 超入門

コマンドラインの黒い画面が怖いんです。

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門
@echo off と @rem の違い
@echo off
ファイルの先頭で @echo off を使うと、以降のコマンド行が画面に表示されなくなります。バッチファイルでは最もよく使う書き方です。
@rem
@rem は、その行だけコマンドエコーを抑止したいときの書き方です。
setlocal
@rem 好きな果物を入力してもらう
echo 好きな果物を入力してください。
set /p fruit=例:りんご
endlocal
バッチファイル全体で不要なコマンド表示を抑えたいなら、先頭に @echo off
を置くのが基本です。@rem は行単位で抑止したいときに使います。
コマンドの行末にコメントを書く
rem はコマンドとして扱われるため、既存のコマンドの後ろに続けて書く場合は & でつなぎます。
echo 処理を開始します & rem 開始メッセージ
rem より後ろの内容は、& を含めてすべてコメントとして扱われます。rem の後ろにコマンドを続けても実行されないため注意してください。
:: は使ってもよい?
バッチファイルでは :: コメント という書き方もよく見かけます。
ただし、:: は正式なコメントコマンドではなく、ラベルとして解釈される書き方を流用したものです。そのため、括弧ブロックの中やリダイレクトと組み合わせた場面で期待通りに動かないことがあります。
保守しやすさや安全性を重視するなら、コメントには rem
を使うのが無難です。特に再利用するバッチファイルや共有スクリプトでは rem をおすすめします。
コメントアウトするときの注意
バッチファイルには、C 言語の /* ... */ のような正式な複数行コメント構文はありません。
複数行を一時的に無効化したいときは、対象行ごとに rem を付ける方法が最も分かりやすく安全です。
rem copy source.txt backup\source.txt
rem move source.txt archived\source.txt
rem echo 完了しました
複数行をまとめてコメントアウトする
行数が多い場合は、goto でジャンプして該当範囲を読み飛ばす方法が使えます。
@echo off
echo 処理を開始します
goto skip_block
echo ここは実行されません
copy source.txt backup\source.txt
:skip_block
echo 処理を終了します
( ) の中にラベルを書くとブロックの解析が崩れ、ジャンプ先として使えません。if や for のブロック内では各行に
rem を付けてください。また、ラベル名はファイル内で重複させないようにしてください。
文字コードで気を付けること
rem 自体がエラーの原因になるわけではありません。問題になりやすいのは、バッチファイルの文字コードと、cmd.exe が解釈するコードページが一致していないケースです。
日本語コメントを含むバッチファイルでは、環境によっては文字化けが起きることがあります。
日本語を含むバッチファイルは、UTF-8 でも Shift_JIS
でも環境次第で挙動差が出ます。既存の運用や文字コードに合わせて保存し、必要なら chcp 65001
なども含めて実機で確認してください。
まとめ
- 正式なコメントの書き方は
rem コメント - コメントが画面に見えるのは、
remが表示しているのではなくコマンドエコーの影響 - バッチ全体で抑止するなら
@echo off、行単位なら@rem ::は簡易的な書き方であり、堅牢さを重視するならremの方が安全- 日本語コメントでは文字コードとコードページの組み合わせを確認する