当编写批处理文件以在 Windows 机器上自动执行某些操作时,我需要暂停其执行几秒钟(通常在测试/等待循环中,等待进程启动)。当时,我能找到的最好的解决方案是使用 ping(我没有骗你)来达到预期的效果。我找到了一篇更好的文章here http://malektips.com/dos0017.html,它描述了一个可调用的“wait.bat”,实现如下:
@ping 127.0.0.1 -n 2 -w 1000 > nul
@ping 127.0.0.1 -n %1% -w 1000> nul
然后,您可以在自己的批处理文件中包含对 wait.bat 的调用,并传入休眠秒数。
显然 Windows 2003 Resource Kit 提供了一个类似 Unix 的 sleep 命令 http://malektips.com/xp_dos_0002.html(终于!)。与此同时,对于我们这些仍在使用 Windows XP、Windows 2000 或(遗憾的是)的人来说视窗系统 http://en.wikipedia.org/wiki/Windows_NT, 有没有更好的办法?
我修改了sleep.py
脚本中的接受的答案 https://stackoverflow.com/questions/166044/sleeping-in-a-dos-batch-file#166290,因此如果命令行上没有传递参数,则默认为一秒:
import time, sys
time.sleep(float(sys.argv[1]) if len(sys.argv) > 1 else 1)
The timeout http://technet.microsoft.com/en-us/library/cc754891.aspx命令可从 Windows Vista 开始使用:
c:\> timeout /?
TIMEOUT [/T] timeout [/NOBREAK]
Description:
This utility accepts a timeout parameter to wait for the specified
time period (in seconds) or until any key is pressed. It also
accepts a parameter to ignore the key press.
Parameter List:
/T timeout Specifies the number of seconds to wait.
Valid range is -1 to 99999 seconds.
/NOBREAK Ignore key presses and wait specified time.
/? Displays this help message.
NOTE: A timeout value of -1 means to wait indefinitely for a key press.
Examples:
TIMEOUT /?
TIMEOUT /T 10
TIMEOUT /T 300 /NOBREAK
TIMEOUT /T -1
注意:它不适用于输入重定向 - 简单的示例:
C:\>echo 1 | timeout /t 1 /nobreak
ERROR: Input redirection is not supported, exiting the process immediately.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)