加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 在批处理文件中,如何判断进程是否正在运行?

发布时间:2020-12-13 20:43:54 所属栏目:Windows 来源:网络整理
导读:我想编写一个批处理文件,检查进程是否正在运行,如果是,则执行一个操作,如果不是则执行另一个操作. 我知道我可以使用任务列表列出所有正在运行的进程,但有没有更直接检查特定进程的简单方法? 看起来这应该有用,但它不会: tasklist /fi "imagename eq firefo
我想编写一个批处理文件,检查进程是否正在运行,如果是,则执行一个操作,如果不是则执行另一个操作.

我知道我可以使用任务列表列出所有正在运行的进程,但有没有更直接检查特定进程的简单方法?

看起来这应该有用,但它不会:

tasklist /fi "imagename eq firefox.exe" /hn | MyTask
IF %MyTask%=="" GOTO DO_NOTHING
'do something here
:DO_NOTHING

使用atzz提供的解决方案,这是一个完整的工作演示:

编辑:简化,并修改为在WinXP和Vista下工作

echo off

set process_1="firefox.exe"
set process_2="iexplore.exe"
set ignore_result=INFO:

for /f "usebackq" %%A in (`tasklist /nh /fi "imagename eq %process_1%"`) do if not %%A==%ignore_result% Exit
for /f "usebackq" %%B in (`tasklist /nh /fi "imagename eq %process_2%"`) do if not %%B==%ignore_result% Exit

start "C:Program FilesInternet Exploreriexplore.exe" www.google.com
您可以使用“for / f”构造来分析程序输出.
set running=0
for /f "usebackq" %%T in (`tasklist /nh /fi "imagename eq firefox.exe"`) do set running=1

另外,坚持一个是个好主意

setlocal EnableExtensions

在脚本开始时,以防用户默认禁用它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读