Windows 10如果进程未运行,我似乎无法获取批处理文件以激活第二个批处理文件。第一部分工作正常,调用第二批文件被破坏。我试着打电话,我试过%~dp0
,就像这样:%~dp0MyProgram.bat
@echo off
:start
cls
set proc=zm.exe
set runme=c:\ZM\zcash.bat
set time=30
tasklist /FI "IMAGENAME eq %proc%" 2>NUL | find /I /N "%proc%">NUL
if "%ERRORLEVEL%"=="0" (
echo Everything is OK
timeout /t %time%
goto :start ) || (
echo ERROR! restarting service
taskkill /IM "%proc%" /F
else (start "" "%runme%")
)
timeout /t %time%
goto :start
答案 0 :(得分:0)
尽管您已经尝试过,但您应该使用Call
,因为您希望在完成后返回相同的脚本。
这样的事情对你有用吗?
@Echo off
Set "proc=zm.exe"
Set "runme=C:\ZM\zcash.bat"
Set "secs=30"
:Loop
ClS
TaskList | FindStr /I "\<%proc%\>" >Nul && (Echo Everything is OK) || (
Echo ERROR! starting service
Call "%runme%")
Timeout %secs% /NoBreak >Nul
GoTo Loop
注意:我将变量名称更改为%secs%
,因为%TIME%
已经是已定义的系统变量。