检查进程是否正在运行,若未运行则启动它

检查进程是否正在运行,若未运行则启动它

如果文件已关闭,则使用如下批处理文件来启动它:

:start
如果文件未打开则打开它
超时 10
转到开始

我不太擅长编程

答案1

这不是索要免费脚本的地方,但由于您的需要可以轻松实现,所以我可以为您省去麻烦。

一个非常类似的问题被问到 堆栈溢出,我认为这就是你要找的:

Tasklist /FI "IMAGENAME eq program.exe" /FO CSV > search.log

FOR /F %%A IN (search.log) DO IF %%~zA EQU 0 GOTO end

start program.exe

:end

del search.log

将“program.exe”更改为您使用的程序的名称。

图片来源:Matt Laceyhttps://stackoverflow.com/questions/162291/how-to-check-if-a-process-is-running-via-a-batch-script

答案2

假设所讨论的“程序”是记事本。您将下面的代码复制到记事本,使用您想要的名称保存它,但使用 *.bat 扩展名并运行它。批处理文件将每 10 秒检查一次记事本是否正在运行,如果没有,它将重新启动该过程...

@echo off
set ProgramPath=%windir%\notepad.exe

for /f "delims=" %%a in ("%ProgramPath%") do set "Program=%%~nxa" 

:Repeat
set Running=no
for /f %%a in ('tasklist') do if /i "%%a"=="%Program%" set Running=yes

if /i Not "%Running%"=="yes" start "" "%ProgramPath%"

timeout /t 10 > nul
goto :Repeat

相关内容