バッチファイルを書くうえで最初に覚えるべき基本命令が @echo off・echo・pause・rem の4つです。この記事ではそれぞれの意味・動作・使い方を実例とともに丁寧に解説します。
@echo off ― コマンド自体の表示を消す
バッチファイルを実行すると、デフォルトでは実行されるコマンドがそのまま画面に表示されます。これを「エコー」といいます。@echo off を先頭に書くことで、コマンド自体の表示を消してスッキリした出力にできます。
rem @echo offがない場合の出力イメージ:
C:\>echo こんにちは
こんにちは
C:\>pause
続行するには何かキーを押してください . . .
rem @echo offがある場合の出力:
こんにちは
続行するには何かキーを押してください . . .@(アットマーク)は「この行自体もエコーしない」という意味です。echo off だけだと echo off という行が表示されてしまうため、@echo off とセットで使います。
echo ― 文字を表示する・空行を入れる
echo はコマンドプロンプトに文字を表示するコマンドです。ログの出力や処理状況の表示に使います。
@echo off
rem 文字列を表示
echo こんにちは、バッチファイルです。
rem 変数を含む文字列を表示
echo 今日の日付: %DATE%
echo 現在時刻: %TIME%
rem 空行を入れる(echoの後にピリオドを付ける。スペースは入れない)
echo.
echo ← ここに空行が入る
echo.
rem 区切り線をよく使う
echo ============================================
echo 処理が完了しました
echo ============================================注意:echo (スペース付き)と echo. は違います。echo はエコーの状態(ON/OFF)を表示してしまいます。空行には必ず echo. を使いましょう。
rem ― コメントを書く
rem(Remarkの略)はコメント行です。rem で始まる行は実行されません。処理の説明や一時的に無効化したいコマンドに使います。
@echo off
rem ================================================
rem スクリプト名: backup.bat
rem 作成日: 2026-04-23
rem 説明: workフォルダをbackupフォルダにコピーする
rem ================================================
rem フォルダの存在確認
if not exist "D:\backup" mkdir "D:\backup"
rem バックアップ実行
robocopy C:\work D:\backup /E
rem 以下の行は一時的にコメントアウト(無効化)
rem echo デバッグ情報: %ERRORLEVEL%pause ― キー入力待ちで一時停止する
pause はバッチの実行を一時停止して「続行するには何かキーを押してください…」と表示します。何かキーを押すと次の処理に進みます。
@echo off
echo 処理を開始します。よろしいですか?
pause
rem ← ここでキーを押すまで待機
echo 処理を実行します...
robocopy C:\work D:\backup /E
echo 処理が完了しました。
pause
rem ← 結果を確認してからウィンドウを閉じられるpause はデバッグ中や、処理結果を確認したいときに便利です。自動実行(タスクスケジューラ経由など)では邪魔になるので本番では外しましょう。
exit ― バッチを終了する
| コマンド | 意味 | 使いどころ |
|---|---|---|
| exit | コマンドプロンプトごと終了 | バッチ全体を終わらせるとき |
| exit /b 0 | 呼び出し元に戻る(正常終了) | サブルーチンの末尾、エラーなし |
| exit /b 1 | 呼び出し元に戻る(エラー終了) | サブルーチンの末尾、エラーあり |
まとめ:バッチファイルの骨格テンプレート
@echo off
rem ================================================
rem スクリプト名: template.bat
rem 説明: バッチファイルの基本テンプレート
rem ================================================
echo 処理を開始します
echo 開始時刻: %TIME%
echo.
rem ===== ここにメイン処理を書く =====
rem ===================================
echo.
echo 処理が完了しました
echo 終了時刻: %TIME%
pause
exit /b 0- @echo offは必ず先頭に書いてコマンドの表示を抑制する
- echo.(ピリオド付き)で空行を入れて見やすい出力にする
- remでコメントを書いて処理の意図を説明する習慣をつける
- pauseで処理前後に確認の間を入れる(本番自動実行では外す)
最初の頃は@echo offを忘れて、コマンドが大量に表示されて何が何だかわからなくなることがよくありました。バッチファイルを書くときは必ず先頭の3行(@echo off・rem スクリプト名・rem 説明)から書き始めるのが習慣になっています。
hobbyshift管理人



コメント