【问题标题】:Pausing a batch file for amount of time [duplicate]暂停批处理文件一段时间[重复]
【发布时间】:2011-06-21 23:08:52
【问题描述】:

可能的重复:
Sleeping in a DOS batch file
How to wait in a batch script

我有一个以批处理文件启动的程序。

第一个模块需要 10 秒左右来初始化,我想要一种在调用第二个模块之前“休眠”15 秒的方法,但我不希望它要求用户按“暂停”似乎需要。

所以,这就是我的意思:

echo %PATH%

pause 10

echo %PATH%

在这个例子中,我希望回声之间有 10 秒的间隔。这可能吗?我见过一些使用“ping 1.1.1.1”的例子,但它似乎并不能一直正常工作。

【问题讨论】:

标签: command-line batch-file cmd


【解决方案1】:
ping -n 11 -w 1000 127.0.0.1 > nul

更新

初学者的错误。 Ping 不会在请求之前或之后等待 1000 毫秒,而是在请求之间等待。因此,要等待 10 秒,您必须执行 11 次 ping 才能在其间留出 10 个“间隙”。

【讨论】:

  • 这行得通。按Ctrl+C可以中断延迟。
  • 更新了我的答案,将-n 10 更改为-n 11
【解决方案2】:

如果choice 可用,请使用:

choice /C X /T 10 /D X > nul

其中/T 10 是延迟的秒数。 请注意,语法可能因您的 Windows 版本而异,因此请务必使用CHOICE /?

【讨论】:

  • 这行得通。按 X 可以中断延迟。
  • 选项在 2000/XP 上不存在,ping 是更好的选择。如果您想支持 Win95 RTM 及更高版本,则需要检测您所在的平台并使用 ping 或选择。
  • @Anders:是的,这就是为什么我说“如果有选择”,感谢您添加哪个操作系统缺少选择,我不再确定了。顺便说一句,一种解决方法是将choice.com 复制到目标系统。
  • +1 出色的开箱即用解决方案。
  • sleep 在 win 10 中可用。它只是运行为:sleep 1(// 1 秒)或 sleep 1m(1 分钟等)。只需运行以下命令即可测试您的操作系统是否具有睡眠命令: sleep 1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-21
  • 1970-01-01
  • 1970-01-01
  • 2014-12-16
  • 2019-06-21
  • 1970-01-01
相关资源
最近更新 更多