Muk*_*han 6 sleep batch-file wait
我正在创建一个批处理文件,在我的桌面上运行程序xyz.exe4个小时,然后将其关闭1小时并重复此过程.这是我的剧本.
:a
START C:\Users\Mukul\Desktop\xyz.exe
SLEEP 14400
taskkill /F /IM xyz.exe
SLEEP 3600
goto :a
Run Code Online (Sandbox Code Playgroud)
根据这里,脚本应该等待.它还说:
SLEEP 10
Run Code Online (Sandbox Code Playgroud)
将延迟执行下一个命令10秒.所以SLEEP 14400应该延迟执行4个小时.
当前结果:下一个命令在第一个命令完成后立即执行.
期望的结果:下一个命令应该在执行最后一个命令之前等待4个小时.
Leo*_*896 10
您也可以使用timeout。
这是一个例子:
@echo off
echo Hi
timeout /t 1 /nobreak > nul
Run Code Online (Sandbox Code Playgroud)
/t 不是强制性的
1是等待的秒数
/nobreak 确保用户不能跳过等待
> nul 将输出重定向到无内容,因此您什么也看不到
Windows版本可能不支持SLEEP命令.试试这个:
:a
START C:\Users\Mukul\Desktop\xyz.exe
TIMEOUT 14400
taskkill /F /IM xyz.exe
TIMEOUT 3600
goto :a
Run Code Online (Sandbox Code Playgroud)
首先:Bash和Batch是非常不同的语言.
现在,答案.
我更喜欢ping命令sleep命令,因为它可以在几秒和几毫秒之间轻松切换:
ping -n 11 127.0.0.1>nul
Run Code Online (Sandbox Code Playgroud)
该命令暂停10秒然后恢复.
要么:
ping 1.1.1.1 -n 1 -w 10001 >nul
Run Code Online (Sandbox Code Playgroud)
其中也会暂停10秒,但以毫秒为单位.
要么适应:
:a
start C:\Users\Mukul\Desktop\xyz.exe
ping -n 14401 127.0.0.1>nul
taskkill /F /IM xyz.exe
ping -n 3601 127.0.0.1>nul
goto a
Run Code Online (Sandbox Code Playgroud)
免责声明:我没有尝试过最后一段代码(因为我没有4个额外的时间来做某事).