バッチファイルで入力したキーをクリックしてループを停止しますEnterキーをクリックしてループを停止するにはは、どのように私は、ある時点で、乱数のループを実行し、バッチファイルを持っている
:rand1matrix
echo %random%%random%%random%%random%
pause
goto rand1matrix
私はちょうどループを止めて誰かを入力するように頼んではいけません。
バッチファイルで入力したキーをクリックしてループを停止しますEnterキーをクリックしてループを停止するにはは、どのように私は、ある時点で、乱数のループを実行し、バッチファイルを持っている
:rand1matrix
echo %random%%random%%random%%random%
pause
goto rand1matrix
私はちょうどループを止めて誰かを入力するように頼んではいけません。
あなたができることは、ユーザーがキーを押したときに一時ファイルを作成する別のプロセスで別のバッチを開始することです。
@echo off
pause > nul
type nul > "%~1"
exit /b 0
その後、stoploop.bat
が与えられた場所に空のファイルを作成できるようになる任意のキーを押す:
set pollfile=some_random_name.poll.tmp
IF EXIST "%pollfile%" del "%pollfile%"
start cmd /c stoploop.bat %pollfile%
:loop
IF EXIST "%pollfile%" goto :exitloop
:: DO WHAT YOU WANT
echo %random%%random%%random%%random%
goto :loop
:exitloop
echo We got out of the loop :)
IF EXIST "%pollfile%" del "%pollfile%"
stoploop.bat
はこのようなものになることができます:あなたのループでは、そのファイルの存在をポーリングすることができます引数として。 メインバッチスクリプトでは、stoploop.bat
への引数として与えられたファイルがすでに存在するかどうかを毎回確認するだけです。 pollfile
は好きなファイル名/パスに設定できます。注意を払い、削除したくないファイルの名前やパスを使用しないでください。
通常、2つのバッチスクリプトを同じウィンドウ(start /b
)で共有させると効果があります。そうでない場合(または、ユーザーが別のウィンドウを使用してループを停止させたい場合)、別のウィンドウでstoploop.bat
を開始することができます。start cmd /c stoploop.bat %pollfile%
はstart /b
です。
キーでのみ動作し、いずれのキーでも使用しない場合は、pause > nul
をset /p =
に置き換えることができます。
http://stackoverflow.com/questions/36775423/batch-file-getting-user-input-during-execution-of-other-commands-then-このヘルプをチェックしますか? 'pause'の代わりにユーザ入力 – Matthias
'> nul timeout/T 1'を常にチェックするためのループを作成することができますか? – JosefZ
「ループを止める」とはどういう意味ですか?それを終了したいのですか、それとも一定の時間、または別のキーを押すまで停止しますか? – aschipfl