PAUSE(一時停止)
バッチファイルをダブルクリックで実行すると、処理が終わった瞬間にコマンドプロンプトのウィンドウが閉じてしまい、結果を確認できないことがあります。
このような場面で役立つのが PAUSE コマンドです。
PAUSE コマンドを使用すると、バッチファイルの実行を一時停止し、ユーザーが任意のキーを押すまで待機させることができます。
PAUSE コマンドの基本的な使い方
PAUSE コマンドは、オプションなしでそのまま使用します。
PAUSE
実行すると、以下のメッセージが表示され、キー入力を待機します。
任意のキーを押すと、次の行から処理が再開されます。
バッチファイルでの使用例
@echo off
setlocal
echo ファイル一覧を表示します。
echo.
dir /b *.txt
echo.
echo 処理が完了しました。
pause
endlocal
バッチファイルの最後に PAUSE を記述することで、実行結果を確認してからウィンドウを閉じることができます。
メッセージをカスタマイズする
PAUSE コマンドの既定メッセージを変更したい場合は、echo と組み合わせて PAUSE の出力を非表示にする方法があります。
@echo off
echo 処理が完了しました。Enter キーを押すと終了します。
pause >nul
>nul を付けることで、PAUSE の「続行するには何かキーを押してください …」というメッセージが非表示になります。
pause >nul は、独自のメッセージを echo で表示したうえで、キー入力だけを待ちたい場合に便利なテクニックです。
PAUSE の活用場面
デバッグ時の途中停止
バッチファイルの途中に PAUSE を挟むことで、処理の進行状況を確認しながらデバッグできます。
@echo off
setlocal
echo ステップ1: ファイルをコピーしています...
copy "data.txt" "backup\data.txt" >nul 2>&1
echo 完了(エラーコード: %ERRORLEVEL%)
pause
echo ステップ2: 古いファイルを削除しています...
del "temp\*.tmp" >nul 2>&1
echo 完了(エラーコード: %ERRORLEVEL%)
pause
echo すべての処理が完了しました。
endlocal
確認メッセージを表示する
重要な操作の前に PAUSE で一時停止し、ユーザーに確認の機会を与えることができます。
@echo off
echo 注意: temp フォルダ内のすべてのファイルを削除します。
echo 続行する場合は何かキーを押してください。中止する場合はウィンドウを閉じてください。
pause >nul
del /q "temp\*.*"
echo 削除が完了しました。
PAUSE はキー入力があるまで無制限に待機しますが、TIMEOUT コマンドは指定した秒数だけ待機します。自動処理の場合は TIMEOUT の方が適しています。
まとめ
この記事では、PAUSE コマンドの使い方について解説しました。
| 用途 | 書き方 |
|---|---|
| 基本的な一時停止 | pause |
| メッセージを非表示に | pause >nul |
PAUSE コマンドはシンプルですが、バッチファイルの実行結果を確認する際やデバッグ時には欠かせないコマンドです。