【问题标题】:Batch script to find if program is not responding and then start another application else exit batch job批处理脚本查找程序是否没有响应,然后启动另一个应用程序,否则退出批处理作业
【发布时间】:2017-11-21 10:47:40
【问题描述】:

我想要一个批处理脚本来检查程序是否处于运行或无响应状态。如果它处于运行状态退出批处理脚本,否则杀死程序启动其他应用程序。

我尝试使用以下代码,但即使程序处于运行状态,它仍在执行打开应用程序。请帮助我找到解决方案

@echo off
TASKLIST/IM jusched.exe /FI "STATUS eq NOT RESPONDING">nul /T /F  && start "" notepad.exe

【问题讨论】:

    标签: batch-file


    【解决方案1】:

    您似乎混淆了 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%"
    

    【讨论】:

      猜你喜欢
      • 2014-12-03
      • 1970-01-01
      • 2011-08-20
      • 1970-01-01
      • 2018-04-22
      • 2013-08-26
      • 2017-12-25
      • 2012-01-06
      • 1970-01-01
      相关资源
      最近更新 更多