抱歉,我问了这么一个愚蠢的问题。我有 2 个批处理文件,其中我在批处理文件 1 中执行了一些命令,然后休眠一段时间,然后在批处理文件 2 中执行了一些命令,然后批处理文件 2 又会等待一段时间,然后再执行批处理文件 1..,所以我有以下脚本
批处理文件1.bat
@echo off
echo helloworld
call Batchfile2.bat
GOTO END
批处理文件2.bat
@echo off
echo printing
有人可以建议如何在这种情况下使用睡眠吗,我看到了不同的选项睡眠,超时等。 哪一个是在这种情况下最好使用的?
答案1
嗯,SLEEP 不是标准的 Windows 批处理命令,所以它不行。
只要脚本永远不需要在 XP 上运行,那么 TIMEOUT 就很完美了。例如,要休眠 3 秒:
timeout 3 /nobreak >nul
如果您希望脚本也能在 XP 上运行,那么标准方法是使用 PING。它在两次 ping 之间大约等待 1 秒,因此请指示它比您所需的秒数多 ping 一次。因此,以下是延迟约 3 秒的示例:
ping -n 4 127.0.0.1 > nul
答案2
脚本不一定需要放在单独的文件中,因为 CALL 也可以调用标签。这将执行您所描述的操作:
@echo off
:start
call :script1
timeout 1 /nobreak >nul
call :script2
timeout 1 /nobreak >nul
goto :start
:script1
echo script1
goto :eof
:script2
echo script2
goto :eof
如果您希望脚本位于外部文件中,也可以使用类似的方法:
@echo off
:start
call script1.bat
timeout 1 /nobreak >nul
call script2.bat
timeout 1 /nobreak >nul
goto :start