MS-DOSバッチファイルでスクリプトを一時停止してユーザーがEnterキーを押すのを待つことは可能ですか?
Forループの中でこれをやりたいのですが。繰り返しのたびに、スクリプトを一時停止し、ユーザーがEnterキーを押すのを待ちます。
エンターキーではありませんが、それを実行するpause
コマンドがあります。
本当にEnterキーだけを待ちたい場合は、set
コマンドを使用して、ダミー変数を使用してユーザー入力を求めることができます。
set /p DUMMY=Hit ENTER to continue...
pause
コマンドはあなたが探しているものです。もしエンターがヒットしたときのケースだけを見ているなら、runas
コマンドを悪用することができます。
runas /user:# "" >nul 2>&1
set/p=
以上に好きなのは、enter以外の他のボタンを押すと表示されないということです。
使用しているOSに応じて、柔軟であれば、CHOICE
を使用して、ほぼすべてのキーを待機できますEXCEPT
単にMS-DOSエミュレーターである「コマンドプロンプト」を呼び出すことをMicrosoftが主張していることを本当に参照している場合は、おそらくTIMEOUT
が目的に合っているかもしれません(timeout /t -1
はENTER
)およびもちろんCHOICE
は、最近のWINエディションで再び利用可能です。
SET /P
に対する警告-set /p DUMMY=Hit ENTER to continue...
は機能しますが、
set "dummy="
set /p DUMMY=Hit ENTER to continue...
if defined dummy (echo not just ENTER was pressed) else (echo just ENTER was pressed)
eNTERで終わるか、ENTERで終わる何かがキー入力されたかどうかを検出します。