用于判断进程是否正在运行的批处理脚本

时间:2018-04-27 15:55:50

标签: batch-file

我是批处理文件的新手,我正在尝试创建一个脚本来检查进程是否正在运行,并在进程未运行时发出警报。这是我从谷歌那里得到的,但不是我想要的方式。

tasklist /FI "IMAGENAME eq example.exe" 2>NUL | find /I /N "example.exe">NUL if "%ERRORLEVEL%"=="0" echo Program is running

3 个答案:

答案 0 :(得分:0)

如果这是批次(根据问题的尝试表明),根据[MS.Docs]: Using multiple commands and conditional processing symbols

  
      
  • && [...]

         

    command1 && command2

         

    仅当符号前面的命令成功时,才能使用&& 后面的命令运行。 Cmd.exe运行第一个命令,然后仅在第一个命令成功完成时运行第二个命令。

  •   

示例

C:\>(tasklist /FI "IMAGENAME eq svchost.exe" 2>NUL | findstr /I /N "svchost.exe" >NUL) && (echo Program running)
Program running

C:\>(tasklist /FI "IMAGENAME eq svchost1.exe" 2>NUL | findstr /I /N "svchost1.exe" >NUL) && (echo Program running)

答案 1 :(得分:0)

你正试图让它复杂化。将以下内容复制到批处理文件中。也可以使用findstr。

tasklist /fi "imagename eq example.exe" | findstr /i "example.exe" >nul
If %errorlevel%==0 echo example.exe running.
If %errorlevel%==1 echo example.exe Not running.

答案 2 :(得分:0)

这更复杂,当您使用if (typeof obj.k3 === 'undefined') 进行过滤时,无需按ImageName进行过滤:

Find