Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 如何在“之前吞咽任何缓冲标准输入”;暂停“;在批处理文件中?_Batch File_Stdin - Fatal编程技术网

Batch file 如何在“之前吞咽任何缓冲标准输入”;暂停“;在批处理文件中?

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

我们的许多“自动化一组安装程序”。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
标签之前意外按下了一个键。由于
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
。。。将进行更多的研究。开始是个不错的主意,它至少会限制可能导致问题的散乱密钥。开始是个不错的主意,它至少会限制可能导致问题的散乱密钥。