Batch file 如何在“之前吞咽任何缓冲标准输入”;暂停“;在批处理文件中?
我们的许多“自动化一组安装程序”。bat文件以以下内容结尾:Batch file 如何在“之前吞咽任何缓冲标准输入”;暂停“;在批处理文件中?,batch-file,stdin,Batch File,Stdin,我们的许多“自动化一组安装程序”。bat文件以以下内容结尾: :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 GOBBLE_STDIN_SOMEHOW PAUSE >NUL shutdown -r 如果前面的命令花费了一段时间,则很有可能是用户在到达:success
: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
GOBBLE_STDIN_SOMEHOW
PAUSE >NUL
shutdown -r
如果前面的命令花费了一段时间,则很有可能是用户在到达:success
标签之前意外按下了一个键。由于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
GOBBLE_STDIN_SOMEHOW
PAUSE >NUL
shutdown -r
如何“刷新”STDIN,使用任何存在的内容,但如果没有缓冲,则不等待?我建议您使用另一种方法:
: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
但是,如果用户意外地按ENTER键,此方法将失败…我建议您使用另一种方法:
: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
但是,如果用户不小心按了ENTER键,此方法将失败。我看不出您的问题,因为暂停似乎可以按照您的要求工作。
它在等待之前刷新输入缓冲区 用这个测试(我用的是Vista)
我看不出你有什么问题,因为暂停似乎能像你所希望的那样发挥作用。
它在等待之前刷新输入缓冲区 用这个测试(我用的是Vista)
人力资源管理。可能是关于其他安装程序或
start/wait
。。。我会再研究一点。可能是关于其他安装程序或start/wait
。。。将进行更多的研究。开始是个不错的主意,它至少会限制可能导致问题的散乱密钥。开始是个不错的主意,它至少会限制可能导致问题的散乱密钥。