我正在尝试设置一个执行 bat 文件的任务,如果该文件尚未运行,它将启动一堆进程。我找到了一些示例并尝试将它们放在一起,但似乎不起作用。我想在 Windows 2008 服务器上进行设置,这些都是 Visual Studio 2010 vb.net 应用程序。
@echo off
:start
set /p runningprocess="C:\Users...Debug\PROCESS_I.exe"
tasklist /FI "IMAGENAME eq %runningprocess%" | find /I "%runningprocess%" > nul
IF %ERRORLEVEL% equ 0 ECHO PROCESS_? is running
IF %ERRORLEVEL% equ 1 ECHO PROCESS_? is not running
pause>nul
goto start
exit
如何调整它以运行多个进程:
set /p runningprocess="C:\Users...Debug\PROCESS_II.exe"
set /p runningprocess="C:\Users...Debug\PROCESS_III.exe"
该任务应该能够每 1 或 2 小时启动一次,以检查进程是否已经在运行,如果没有启动新进程。这是我的备份计划,用于确保我的进程在发生某些故障时始终运行,我可以通过来自每个应用程序内的电子邮件收到警报。
任何想法表示赞赏。
编辑:刚刚检查了上次运行结果的任务计划,它说“目录名称无效”,这是在程序/脚本中:
"C:\Users\...\BatchProcesses\PTTrackProcesses.bat"
这是在开始
C:\Users\...\BatchProcesses\
手动运行时出错
C:\Users\..Debug\PROCESS_I.exe
ERROR: The search filter cannot be recognized.
PROCESS is not running