6

ある時点でユーザーに yes/no の質問をする単純な .bat ファイルを作成しました。ここで、タイムアウトを追加したいと思います-10秒としましょう-それに。それを行う簡単な方法はありますか?

これまでの私のソース:

SET /P ANSWER=Do you want it (Y/N)?
IF /i {%ANSWER%}=={y} GOTO :yes
IF /i {%ANSWER%}=={yes} GOTO :yes
GOTO :no

:yes
@echo Yeah, it will be done.
GOTO :continue

:no
@echo Nope, it will not happen.
GOTO :continue

:continue
@echo And on we go
4

3 に答える 3

8

choice /T:c,nnVista 以降を使用している場合は、次のコマンドを試すことができます。

    ユーザーが一連の選択肢から 1 つを選択するのを待ちます。

    選択肢 [ /C[:]選択肢 ] [ /N ] [ /S ] [ /T[:]c,nn ] テキスト

           /C:choices 許可されるキーを指定します。
               英語版のデフォルトは YN です
           /N 選択肢を表示しませんか? プロンプト文字列の最後。
           /S または /CS 選択キーを大文字と小文字を区別して扱います。
              リソース キットのバージョンまで (およびそれを含む)、/S を使用します。
              Windows 7 では /CS を使用します。
           /T:c,nn nn 秒後にデフォルトで c を選択します。
              text 表示するプロンプト文字列。
 
于 2013-06-28T07:35:09.840 に答える
8

これは、実行している Windows のバージョンによって異なります。異なるものは異なるものを実行します。

次のいくつかを試すことができます。

timeout 10

ping 0.0.0.0 -n 1 -w 10000 > nul

それらが失敗した場合は、いつでも選択肢のある単純なループを使用できます(つまり、選択肢が機能する場合)

:loop
choice /t 10 /c ynr /cs /d r /m "Do you want it (Y/N)?"
if errorlevel 3 goto :loop
if errorlevel 2 goto :no
if errorlevel 1 goto :yes

:yes
@echo Yeah, it will be done.
GOTO :continue

:no
@echo Nope, it will not happen.
GOTO :continue

:continue
@echo And on we go
于 2013-06-28T07:40:26.170 に答える
1

プロンプトからチェックアウトchoice /?します。

于 2013-06-28T07:35:35.727 に答える