EnterキーでMS-DOSバッチファイルを一時停止


146

MS-DOSバッチファイルでスクリプトを一時停止し、ユーザーがEnterキーを押すのを待つことは可能ですか?

これをforループ内で実行したいと思います。各反復の後、スクリプトを一時停止し、ユーザーが「Enter」を押すのを待ちます

回答:


247

pause具体的にはEnterキーではありませんが、それを行うコマンドがあります。

Enterキーだけを待つ場合は、次のようなsetコマンドを使用して、ダミー変数でユーザー入力を要求できます。

set /p DUMMY=Hit ENTER to continue...


17
変数名を指定する必要はありません:set /p=Hit ENTER to continue...、または単にset /p=プロンプトが必要ない場合。
dbenham 2013年

2
なんらかの理由で、私のアプリは一時停止ロジックのすぐ後に爆発しています。非常に奇妙な。
ouflak 2013年

11
言葉、この文脈で使用されている「アプリ」(バッチファイル)を参照するために少し奇妙なようだ
エイドリアングリゴール

私にはうまくいきません。「set」が機能する/ envに保存される2回目の起動からのみ機能します。
2014年

13

pauseコマンドはあなたが探しているものです。Enterキーが押された場合にのみケースを探している場合は、runasコマンドを乱用することができます。

runas /user:# "" >nul 2>&1

エンターを押すまで画面がフリーズしset/p=ます。エンター以外のボタンを押すと表示されなくなります。


4

pause次のコマンドで実行できます。

dir
pause
echo Now about to end...
pause

1
pause確かには唯一の有効な回答ですMS-DOS(他のすべての回答はでcmdのみ機能します)。したがって、あなたの答えは実際にはこの特別な質問に対する唯一の完全に正しいものです(7年以上前にすでに提案されていましたが)
ステファン

3

使用しているOSに応じて、柔軟性があれCHOICEば、ほとんどすべてのキーEXCEPT入力を待機するために使用できます

単にMS-DOSエミュレータである "コマンドプロンプト"の呼び出しについてマイクロソフトが主張していることを本当に言及している場合は、おそらく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で終了するのかが検出されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.