我想要一个批处理脚本来检查程序是否处于运行或不响应状态。如果处于运行状态,则退出批处理脚本,否则杀死该程序,启动其他应用程序。
我尝试使用以下代码,但即使程序处于运行状态,它也会执行打开的应用程序。请帮我找到解决方案
@echo off
TASKLIST/IM jusched.exe /FI "STATUS eq NOT RESPONDING">nul /T /F && start "" notepad.exe
最佳答案
您似乎混淆了 TaskKill 和 TaskList 语法。 (在命令提示符处输入 TaskList/?
和 TaskKill/?
以获取使用信息)。此外,我认为 TaskList 输出总是成功的,因此它会可能需要使用如果不成功则注册的东西进行检查,例如Find.exe
。
这是为您提供的基本分步示例。
@Echo Off
Rem Setting name of target process
Set "TP=jusched.exe"
Rem Setting name of new process
Set "NP=notepad.exe"
Rem Setting TaskList filters to reduce line length
Set "F1=ImageName eq %TP%"
Set "F2=Status eq Not Responding"
Rem Check target process status and exit if no match
TaskList /FI "%F1" /FI "%F2%" /NH|Find /I "%TP%">Nul||Exit/B
Rem Kill unresponsive process and wait a little
TaskKill /IM "%TP%" /T /F>Nul 2>&1&&Timeout 3 /NoBreak>Nul
Rem Open new process
Start "" "%NP%"
关于batch-file - 批处理脚本查找程序是否没有响应,然后启动另一个应用程序,否则退出批处理作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47411195/