我需要一直在PC上运行.bat
文件,每8小时输出一次数据。
我想要构建的.bat
文件会每小时检查另一个tasklist
文件是否正在运行,如果没有启动它。
我知道.bat
找不到WINDOWTITLE
个文件,这就是我使用ERRORLEVEL
的原因。
我假设1
= tasklist /FI "WINDOWTITLE eq Export"
if errorlevel=0 START C:\ExportApps\Export.bat
TIMEOUT /T 3600
GOTO LOOP
表示测试失败。
我已经环顾了很多,最好的我想出的是这个,但它不起作用。
.bat
当它第二次检查时,它会启动ERRORLEVEL
文件的另一个实例。
如果我将1
更改为{{1}},我会收到以下内容:
信息:没有正在运行的任务符合指定的条件。
答案 0 :(得分:0)
tasklist
没有将errorlevel设置为1。 (Ab)使用find
来获得正确的错误级别:
tasklist /fi "windowtitle eq Export" | find /c "cmd.exe" 1>nul && exit /b
REM code for restarting
安排它每小时运行一次(或者考虑Compo的建议来安排主要批处理文件,当它实际上 没有因某种原因而一直运行时)。