【发布时间】:2011-07-23 04:08:53
【问题描述】:
在编写批处理文件以在 Windows 机器上自动执行某些操作时,我需要暂停其执行几秒钟(通常在测试/等待循环中,等待进程启动)。当时,我能找到的最佳解决方案是使用 ping (我不骗你)来达到预期的效果。我发现了一个更好的写法here,它描述了一个可调用的“wait.bat”,实现如下:
@ping 127.0.0.1 -n 2 -w 1000 > nul
@ping 127.0.0.1 -n %1% -w 1000> nul
然后,您可以在自己的批处理文件中包含对 wait.bat 的调用,并传入休眠的秒数。
Apparently the Windows 2003 Resource Kit provides a Unix-like sleep command(终于!)。与此同时,对于我们这些仍在使用 Windows XP、Windows 2000 或(可悲)Windows NT 的人,有没有更好的方法?
我修改了accepted answer中的sleep.py脚本,这样如果命令行没有传入参数则默认为一秒:
import time, sys
time.sleep(float(sys.argv[1]) if len(sys.argv) > 1 else 1)
【问题讨论】:
-
Windows 2003 Resource Kit 的 Microsoft download page 表明它也适用于 XP。恐怕除了使用“外部”实用程序来等待之外别无选择:XP 命令处理器中没有内置这样的功能。
-
2003 服务器资源工具包适用于 Windows XP(可能适用于 w2k)
-
我过去也遇到过同样的问题,我自己也用过 ping (上面的注释清楚地表明我意识到这是愚蠢的:))。
-
您有两个选择 - 使用
ping命令模拟睡眠,或下载包含sleep命令的 Windows 资源工具包。更多细节在这里:Batch file SLEEP Command
标签: python batch-file