如何在批处理 bat cmd 运行时 延时 等待 ?

2022年5月19日 21点热度 0人点赞

在批处理中,经常需要用到“延时(等待)”,那么如何让批处理延时呢?

工具/原料

  • 电脑

方法1

  1. 1

    [方法1]

    在windows vista及以上系统中,系统提供了一个“timeout”命令。优点:方便,一行命令搞定。缺点:不能在旧系统中(例如xp)使用,且延时精度较低(1秒)。

  2. 2

    -----命令帮助↓-----

    TIMEOUT [/T] timeout [/NOBREAK]

    描述:

    这个工具接受超时参数,等候一段指定的时间(秒)或等按任意键。它还接受一个参数,忽视按键。

    参数列表:

    /T timeout 指定等候的秒数。有效范围从 -1 到 99999 秒。

    /NOBREAK 忽略按键并等待指定的时间。

    /? 显示此帮助消息。

    注意: 超时值 -1 表示无限期地等待按键。

  3. 3

    示例1:

    ::下面这条命令会等待10秒,并且可以按任意键跳过等待

    TIMEOUT /T 10

  4. 4

    示例2:

    ::下面这条命令会等待300秒,并且只能按下CTRL+C来跳过

    TIMEOUT /T 300 /NOBREAK

  5. 5

    示例3:

    ::下面这条命令会持续等待,直到你按下任意按键.功能类似于pause

    TIMEOUT /T -1

  6. 6

    示例4:

    ::下面这条命令会持续等待,直到你按下CTRL+C按键

    TIMEOUT /T -1 /NOBREAK

    END

方法2

  1. 1

    [方法2]

    使用vbs的sleep方法来实现延时(等待)。优点:能在旧系统中(例如xp)使用,且延时精度较高(1毫秒)缺点:代码行数较多,3行。

  2. 2

    示例:

    -----代码↓-----

    echo CreateObject("Scripting.FileSystemObject").DeleteFile(WScript.ScriptFullName) >%Temp%\Wait.vbs

    echo wscript.sleep ▲ >>%Temp%\Wait.vbs

    start /wait %Temp%\Wait.vbs

    -----代码↑-----

    注意:其中的“▲”为等待的毫秒数,1秒=1000毫秒,等待10000毫秒,即10秒。

    当然,也可以使用并行符号“&”,把命令并成一行

    -----代码↓-----

    echo createobject("scripting.filesystemobject").deletefile(wscript.scriptfullname) >%temp%\VBScriptWait.vbs& echo wscript.sleep ▲ >>%temp%\VBScriptWait.vbs& start /wait %temp%\VBScriptWait.vbs

    -----代码↑-----

    效果相同

    END

注意事项

  • 以上内容纯原创,未经授权禁止转载
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
展开阅读全部

laozhao

这个人很懒,什么都没留下

文章评论