PAUSE(一時停止)

にメンテナンス済み
目次

バッチファイルをダブルクリックで実行すると、処理が終わった瞬間にコマンドプロンプトのウィンドウが閉じてしまい、結果を確認できないことがあります。

このような場面で役立つのが PAUSE コマンドです。

PAUSE コマンドを使用すると、バッチファイルの実行を一時停止し、ユーザーが任意のキーを押すまで待機させることができます。

PAUSE コマンドの基本的な使い方

PAUSE コマンドは、オプションなしでそのまま使用します。

構文
PAUSE

実行すると、以下のメッセージが表示され、キー入力を待機します。

- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>pause
続行するには何かキーを押してください …
C:\users\user>

任意のキーを押すと、次の行から処理が再開されます。ShiftやCtrlなど、単独では文字を入力しないキーは「キーを押した」とは扱われません。

バッチファイルでの使用例

result_check.cmd
@echo off
setlocal

echo ファイル一覧を表示します。
echo.
dir /b *.txt
echo.
echo 処理が完了しました。

pause
endlocal
- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>result_check.cmd
ファイル一覧を表示します。
report.txt
memo.txt
処理が完了しました。
続行するには何かキーを押してください …
C:\users\user>

バッチファイルの最後に PAUSE を記述することで、実行結果を確認してからウィンドウを閉じることができます。

メッセージをカスタマイズする

PAUSE のメッセージ自体は変更できません。代わりに echo で独自のメッセージを表示し、PAUSE の出力を >nul で非表示にします。

custom_message.cmd
@echo off
echo 処理が完了しました。何かキーを押すと終了します。
pause >nul
- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>custom_message.cmd
処理が完了しました。何かキーを押すと終了します。
C:\users\user>

>nul を付けることで、PAUSE の「続行するには何かキーを押してください …」というメッセージが非表示になります。

チェック

pause >nul は、独自のメッセージを echo で表示したうえで、キー入力だけを待ちたい場合に便利なテクニックです。

PAUSE の活用場面

デバッグ時の途中停止

バッチファイルの途中に PAUSE を挟むことで、処理の進行状況を確認しながらデバッグできます。

debug.cmd
@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 で一時停止し、ユーザーに確認の機会を与えることができます。

confirm.cmd
@echo off
echo 注意: temp フォルダ内のすべてのファイルを削除します。
echo 続行する場合は何かキーを押してください。中止する場合は Ctrl+C を押してください。
pause >nul
del /q "temp\*.*"
echo 削除が完了しました。
PAUSE と TIMEOUT の違い

PAUSE はキー入力があるまで無制限に待機しますが、TIMEOUT コマンドは指定した秒数だけ待機します(キー入力で中断もできます)。自動処理の場合は TIMEOUT の方が適しています。

タスクスケジューラなど無人実行では使わない

PAUSE はキー入力を待ち続けるため、タスクスケジューラなど人が操作しない環境で実行すると、処理が終了せずに残ってしまいます。無人実行するバッチファイルからは PAUSE を取り除いてください。

バッチファイルを実行するとウィンドウがすぐ閉じる場合

ダブルクリックで実行したバッチファイルは、最後の行まで処理するとウィンドウごと閉じます。エラーメッセージも一瞬で消えるため、原因を確認できません。

  • 最終行に pause を追加する: 正常終了時も異常終了時も、結果を確認できます。
  • コマンドプロンプトから実行する: 既に開いているウィンドウで result_check.cmd のようにファイル名を入力すれば、終了後も出力が残ります。
  • cmd /k で起動する: ショートカットのリンク先を cmd /k "C:\scripts\result_check.cmd" とすると、終了後もウィンドウが開いたままになります。

PAUSE を使うときの注意点

  • Ctrl + C を押すと、PAUSE で待機中でもバッチファイルを中断できます(「バッチ ジョブを終了しますか」と確認された場合は Y を入力)。
  • バッチファイルを既にコマンドプロンプト上で実行している場合、終了後もウィンドウは閉じないため、最後の PAUSE は不要です。ダブルクリックで実行する場合に有効です。
  • timeout /t -1 でもキー入力まで待機できます。ただし、入力をリダイレクトしている場合(timeout /t -1 < file.txt など)は「入力のリダイレクトはサポートされていません」というエラーになります。

まとめ

この記事では、PAUSE コマンドの使い方について解説しました。

用途書き方
基本的な一時停止pause
メッセージを非表示にpause >nul

PAUSE コマンドはシンプルですが、バッチファイルの実行結果を確認する際やデバッグ時には欠かせないコマンドです。

関連記事

練習問題

練習問題

PAUSE コマンドの既定メッセージ(「続行するには何かキーを押してください …」)を非表示にするには、どのように記述しますか?

正しいものを 1 つ選んでください。

  1. pause >nul と記述する
  2. pause /q と記述する
  3. pause /silent と記述する
#コマンドプロンプト #バッチファイル #PAUSE #コマンド