コマンド処理を一時停止するpauseの解説

BASH,bat,バッチ

pauseコマンドで処理を止める

pauseコマンドは処理を一時停止する機能があります。例えば、下記のバッチファイルを作って、処理させてみます。

@echo off
echo 次のコマンドで処理が一時停止します。
pause
echo コマンド処理が止まりましたね。

このバッチファイルを起動させます。一度pauseでコマンド処理が止まります。適当にボタンを押すと処理が再開され、最後の行のechoコマンドが起動します。

もし、pauseの後に処理を止める場合は「Ctrl+C」でできます。コマンドスクリプトの結果ちらです。処理が止まることがわかります。

pauseコマンドを使う場面

pauseコマンドは処理を一時停止することができるので、処理を確認したいときや一時停止したい時によく使います。

下記の例の2つを紹介します

  • 繰り返し処理時
  • フォルダの中身を確認して、コピーする

繰り返し処理でpauseを使う

下記のコードをコマンドスクリプトで実行します。forコマンドを使って、繰り返し処理の間にpauseで一時停止を行います。

@echo off
for /l %%a in (1,1,5) do (
echo %%a
pause
)

コマンドスクリプトの結果はこちら。1をechoコマンドで表示した後に、pauseで1度止まり、コマンドを起動させると、2や3を表示しています。5まで表示が終わると、コマンドは終わります。

このように繰り返し処理で1つ1つの作業を止めたい時にpauseを使用します。

フォルダの中身を確認して、コピーする

pauseコマンドを使う場面でファイルの中身を見て、処理を決める方法があります。今回はファイルの中身を確認して、コピーするやり方を紹介します。下記のコードとコピーするファイルを用意します。コピーするファイルは「ex.txt」とします。

@echo off
type ex.txt
pause
copy ex.txt ex2.txt

このコードの解説ですが、

1行目の@echo offはコマンド処理を表示しません。

2行目のtype ex.txtはファイルex.txtの内容を表示します。

3行目のpauseは一時停止します。

4行目のcopy ex.txt ex2.txtはex.txtをex2.txtという名前でコピーするという意味です。

ex.txtファイルの内容は下記のとおりです。

コマンドスクリプトの結果はこちら。typeコマンドによってファイルの中身が表示され、pauseで一時停止し、キーを入力するとファイルがコピーされます。このようにファイルの中身を確認するためにpauseコマンドを使って、一時停止することができるのです。

pauseでコメントを表示させない

pauseを使用すると、いちいちコメントがウザイですよね。このコメントを表示しない方法として、「>nul」を足すとコメントが表示されません。

コマンド

pause >nul

実際に前節の繰り返し処理のコードを使って、コメントを表示させずにコマンドを処理します。

@echo off
for /l %%a in (1,1,5) do (
echo %%a
pause >nul
)

コマンドスクリプトの結果がこちら。pauseのコマンドのコメントが表示されていないことが分かります。

pause以外でコマンド処理を止める方法

pause以外でコマンドを止める方法として、下記の3つの方法があります。それぞれの機能が異なるので、使う場面が異なります。時間を決めて、一時停止する場合は「timeout」。ユーザーに決まった選択肢を入力してもらうには「choice」。ユーザーに任意の数字や文字を入力してもらう場合は「set /p」といった具合に異なります。

  • timeout
  • choice
  • set /p

コメント

タイトルとURLをコピーしました