如果文件已关闭,则使用如下批处理文件来启动它:
: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