在批处理命令里如何在两个命令之间延迟一段时间?

在批处理命令里如何在两个命令之间延迟一段时间?,第1张

ping 127.1 -n 5 >nul

代表延迟5秒`不准确,就像你说的因为ms ping本机都是<1ms,所以这里也只是5秒左右

你还可以调用VBS脚本进行延迟,如下

echo program demo

echo set os = CreateObject("Wscript.shell")>>x.vbs

echo wscript.sleep 1000>>x.vbs &&call x.vbs &&del x.vbs

echo step 1

在VBS脚本中1000=1秒,根据你实际情况修改下就好了

批处理本身没有等待的命令,但可以利用外部下载的命令、vbs、各种批处理本身变通方法来实现延迟,不过最简便实用的,还是这一句批处理变通命令:

ping -n 2 127.1>nul

因为ping命令两次之间的间隔大概是1秒,让它ping两次就等待1s,要等待5秒就是 -n 6

批处理很难满足你的要求,试试VBS吧:

Dim objShell

Set objShell = Wscript.CreateObject("Wscript.Shell")

objShell.Run "rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,1"

' 设置屏幕保护

'------------------------ Start --------------------------

Wscript.Sleep 2000

objShell.SendKeys("{home}")

Wscript.Sleep 500

objShell.SendKeys("{Down 1}")

Wscript.Sleep 500

objShell.SendKeys("{tab 3}")

Wscript.Sleep 500

objShell.SendKeys("20") ' 设置屏幕保护为1分钟

Wscript.Sleep 500

objShell.SendKeys("%p")

'------------------------ End --------------------------

' 设置电源和监视器

'------------------------ Start --------------------------

Wscript.Sleep 500

objShell.SendKeys("%o")

Wscript.Sleep 800

objShell.SendKeys("{home}")

Wscript.Sleep 500

objShell.SendKeys("%m")

Wscript.Sleep 500

objShell.SendKeys("{up 5}") ' 设置关闭电源时间为2分钟

Wscript.Sleep 500

objShell.SendKeys("%a")

Wscript.Sleep 500

objShell.SendKeys("{enter}")

'------------------------ End --------------------------

Wscript.Sleep 500

objShell.SendKeys("%a")

Wscript.Sleep 500

objShell.SendKeys("{enter}")

Set objShell = Nothing

【更新】to 玩固分子:

在我这已经测试成功,错误代码8007007E,以下论坛有述及{二楼}:http://support.genopro.com/Topic17558-86-1.aspx

其中的“The specified module could not be found”即是错误代码的解释,翻译过来:未找到指定模块。这说你电脑的VBS运行环境出错,或者丢失了相应文件。安装以下文件:

http://www.microsoft.com/downloads/details.aspx?familyid=47809025-D896-482E-A0D6-524E7E844D81&displaylang=en

或者,开始--运行--输入:regsvr32 scrrun.dll{回车}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8465804.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存