Windowsのバッチファイルを作成する際、「PAUSE」コマンドは非常に便利な機能の一つです。バッチファイルの処理を一時停止し、ユーザーが任意のキーを押すまで処理を進めないようにすることができます。シンプルながらも、デバッグやスクリプトの制御に役立つ重要なコマンドです。本記事では、「PAUSE」コマンドの基本的な使い方から、応用例、さらにはトラブルシューティングの方法まで詳しく解説します。
PAUSEコマンドとは?
PAUSEコマンドは、バッチファイルの処理を一時停止するために使用されます。バッチファイルの途中で処理を止め、ユーザーの操作を待つことができるため、デバッグ時や手動操作が必要な場面で役立ちます。
基本的な構文
PAUSE
このコマンドを実行すると、コンソールに「続行するには何かキーを押してください . . .」と表示され、ユーザーがキーを押すまで処理が停止します。
PAUSEコマンドの基本的な使い方
1. スクリプトの一時停止
バッチファイルの途中で一時停止し、ユーザーが内容を確認できるようにする例です。
@echo off
echo バッチ処理の開始
PAUSE
echo 処理を再開します
このスクリプトを実行すると、「バッチ処理の開始」と表示され、キーを押すまで停止します。その後、「処理を再開します」と表示されます。
2. ユーザーに確認を求める
例えば、ファイル削除前にユーザーの確認を求める場合に使用できます。
@echo off
echo 重要なファイルを削除します。本当に続行しますか?
PAUSE
del C:\test\important.txt
echo 削除が完了しました。
この例では、PAUSEコマンドによってユーザーが確認する時間を確保できます。
PAUSEの応用例
1. バッチファイルのデバッグ
スクリプトの途中で実行状況を確認したい場合、PAUSEを利用すると便利です。
@echo off
echo スクリプトの前半部分を実行中
PAUSE
echo スクリプトの後半部分を実行中
このようにすることで、スクリプトのどの部分まで実行されたかを確認しながらデバッグできます。
2. コマンドプロンプトの自動クローズ防止
バッチファイルを実行後にコマンドプロンプトがすぐに閉じてしまうのを防ぐために、最後にPAUSEを入れることがあります。
@echo off
echo バッチファイルの処理が完了しました。
PAUSE
これにより、処理終了後も画面が閉じず、ユーザーが結果を確認できます。
PAUSEコマンドのカスタマイズ
1. 「続行するには何かキーを押してください . . .」の表示を変更
PAUSEコマンド単体ではメッセージを変更できませんが、ECHOを組み合わせることでカスタマイズ可能です。
@echo off
echo 任意のキーを押すと処理を続行します。
pause >nul
この場合、通常のメッセージは表示されず、ユーザーがキーを押すまで停止する仕組みになります。
2. ユーザーの特定の入力を待つ方法
PAUSEではなく「choice」コマンドを使うと、より細かいユーザー入力の制御が可能です。
@echo off
echo 処理を続行しますか?(Y/N)
choice /C YN /M "続行する場合は Y を、キャンセルする場合は N を押してください"
if errorlevel 2 goto cancel
if errorlevel 1 goto continue
:continue
echo 処理を続行します。
goto end
:cancel
echo 処理をキャンセルしました。
:end
PAUSE
このスクリプトでは、YかNを選ばせることで、明確な意思決定を求めることができます。
PAUSEコマンドの注意点とトラブルシューティング
1. スクリプトが止まらない場合
もしPAUSEが機能しない場合、スクリプトが @echo off
で正しく開始されているか、コマンドプロンプトの設定が影響していないかを確認してください。
2. 「何かキーを押してください」のメッセージを消したい
PAUSE >nul
を使うことで、メッセージなしで一時停止が可能です。
3. 管理者権限で実行が必要な場合
PAUSE自体は管理者権限を必要としませんが、バッチスクリプト内で管理者権限が必要な操作(例: システムフォルダへの変更)が含まれる場合は、管理者モードで実行する必要があります。
まとめ
PAUSEコマンドはシンプルながら、バッチファイルの制御において非常に便利な機能です。一時停止によって処理の確認や、ユーザー入力を待つことができ、デバッグやエラーチェックにも活用できます。応用例としては、ファイル削除前の確認やスクリプト終了時の画面保持などがあります。本記事を参考に、バッチスクリプトの利便性を向上させてみてください。