批处理文件:在执行其他命令期间获取用户输入,然后稍后检查

时间:2016-04-21 16:23:17

标签: windows batch-file input user-input

我想要的是一个适用于Windows 7,8.1和10的命令(或一系列命令)。它需要在执行批处理文件的过程中随时收集用户输入,仅用于检查和解释后来。我不介意使用输入文本文件。

我已经搜索了一个答案,但我最接近它的是<nul set /p "input=",但它要求用户按一个键并在命令运行的确切时刻按Enter键。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

此方法利用GOTO创建一个循环,每隔6秒左右检查input.txt的第一行。您可以将:DOSTUFF的内容替换为您想要的任何内容。如果您有疑问,请告诉我。

@echo off
GOTO DOSTUFF

:CHECKINPUT
    for /f %%a in (input.txt) do (
        if %%a NEQ "" (
            set "input=%%a"
            GOTO GOTINPUT
            )
        exit /b
    )
    GOTO DOSTUFF

:GOTINPUT
    echo Thanks for the input!
    echo Here is what you entered:
    echo %input%
    GOTO ENDER
:DOSTUFF
    echo I could be doing other things here, but instead I'm just waiting for input...
    PING 127.0.0.1 -n 6 >nul
    GOTO CHECKINPUT
:ENDER
    pause

虽然这是在一个窗口中运行,但我只是在另一个命令提示符下运行echo test>input.txt

为了使其更加强大,您可能需要在检查后覆盖该文件。这可以通过echo.>input.txt

轻松完成