2011-12-07 7 views
1

私たちの「インストーラのグループを自動化する」の.batファイルのようなもので終わるのかなりの数:前のコマンドは、しばらく時間が取られている場合は、ユーザーが誤っても、キーを打った良いチャンスがありますバッファされたSTDINをバッチファイルで "一時停止"する前にどのようにゴブリングするのですか?

:success 
ECHO Success! (as far as I can tell) 
ECHO. 
ECHO. 
ECHO Press any key to reboot... 
ECHO. 
ECHO. 
PAUSE >NUL 
shutdown -r 
EXIT /b 

:successというラベルが表示されます。 STDINがバッファリングされているように見えるため、これによりPAUSEがすぐに破棄されます。どのように私はそこにいた何かを消費しますが、バッファリングされ何もない場合は待機していない、STDINを「フラッシュ」でしょう

GOBBLE_STDIN_SOMEHOW 
PAUSE >NUL 
shutdown -r 

:私はむしろ持っているだろう何

のようなものでしょうか?一時停止に思えるように私は、あなたの問題が表示されていない

答えて

1

は、私はあなたが別の方法を使用することをお勧めあなたが望むように仕事。
待機する前に入力バッファをフラッシュします。この(私はVistaを使用)

@echo off 
echo Press now some keys 
ping -n 3 localhost > nul 
echo Stop pressing 
ping -n 3 localhost > nul 
echo Now Pause starts (and waits) 
pause 
+0

未開始する悪い考えでテスト

、それは、少なくとも問題を引き起こす可能性が迷走キーを制限します。 – leander

0

...ユーザーが誤ってエンターキーを押した場合

:success 
ECHO Success! (as far as I can tell) 
ECHO. 
ECHO. 
ECHO Press ENTER key to reboot... 
ECHO. 
ECHO. 
SET /P DUMMY= 
shutdown -r 
EXIT /b 

しかし、この方法は失敗:

+0

Hrm。たぶんそれは他のインストーラや 'start/wait'に特有のものでしょう...もう少し調べてみましょう。 – leander

関連する問題