在编写批处理文件以自动执行Windows框上的某些操作时,我需要将其执行暂停几秒钟(通常在测试/等待循环中,等待进程启动)。当时,我能找到的最佳解决方案是使用ping(我不骗你)来达到预期的效果。我已经找到了更好的写了它在这里,它描述了一个可调用“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命令(最后!)。同时,对于仍然使用Windows XP,Windows 2000或(不幸的)Windows NT的我们来说,还有更好的方法吗?
我sleep.py在接受的答案中修改了脚本,以便如果在命令行上未传递任何参数,则默认为一秒钟:
import time, sys time.sleep(float(sys.argv[1]) if len(sys.argv) > 1 else 1)
该timeout命令,可以从Windows Vista和以后应在命令中使用,如在另一所描述的回答了这个问题。接下来是一个古老的答案。
timeout
Windows Vista
旧答案 如果你已经安装了Python,或者不介意安装它(它也有其他用途:),只需创建以下sleep.py脚本并将其添加到PATH中的某个位置即可:
sleep.py
import time, sys time.sleep(float(sys.argv[1]))
如果你有此需要,它将允许亚秒级的暂停(例如1.5秒,0.1等)。如果你希望将其称为sleep而不是sleep.py,则可以将.PY扩展名添加到PATHEXT环境变量中。在Windows XP上,你可以在以下位置进行编辑:
Windows XP
我的电脑→属性(菜单)→高级(选项卡)→环境变量(按钮)→系统变量(框架)