标题: [文件操作] 批处理命令tasklist怎样检索进程并判断? [打印本页]
作者: mebanna 时间: 2012-9-8 13:41 标题: 批处理命令tasklist怎样检索进程并判断?
我用下面的命令行,能侦测到系统当前是否存在 alg.exe 这一进程,- TASKLIST /NH /FI "imagename eq alg.exe"
复制代码
我希望的后续任务是:如果该进程存在,则GOTO A;如果该进程未启动,则GOTO B。
似乎 If eorrlevel 是最方便实现这一点的命令了,可是该如何将 If errorlevel 与上面的命令行相连接呢?
谢谢
作者: QIAOXINGXING 时间: 2012-9-8 15:31
- TASKLIST /NH /FI "imagename eq alg.exe"&&goto :a||goto :b
复制代码
作者: Bearxy 时间: 2012-9-9 01:28
- @echo off
- tasklist|find "alg.exe"
- if "%errorlevel%"=="0" (goto A) else (goto B)
- pause
-
- :A
- echo.存在!
- pause
-
- :B
- echo.不存在!
- pause
复制代码
虽然楼上的哥们回答的更好,但是我还是想做下解答,哈哈。这个更直观吧
作者: mebanna 时间: 2012-9-9 01:50
本帖最后由 mebanna 于 2012-9-9 01:51 编辑
回复 2# QIAOXINGXING
回复 3# Bearxy
感谢两位的回复。
怪我前面没说清楚:
TASKLIST /NH /FI "imagename eq alg.exe" 执行后,不会返回不同的errorlevel值——无论alg.exe进程存在与否,%errorlevel%的返回值都是“0”
所以,该有什么办法来让系统返回不同的%errorlevel%值呢?
作者: CrLf 时间: 2012-9-9 03:55
- TASKLIST|findstr /bc:"alg.exe "&&goto A||goto B
复制代码
作者: Bearxy 时间: 2012-9-9 12:09
本帖最后由 Bearxy 于 2012-9-9 12:13 编辑
回复 4# mebanna
我个人的理解哈,语言组织能力不怎样,就当抛砖引玉了。
你只用tasklist命令,那么errorlevel判断的返回值当然是执行tasklist是否成功的信息, 执行成功了返回值就是0,没成功就是1。但是在除了一些极个别的特殊的情况,TASKILST能不成功吗?
所以用到FIND啊,用FIND在进程列表里去查询你要的进程信息,成功返回值为0,不成功则为1.
很明显的判断FIND的返回值要比判断tasklist要更方便些吧?
解决你的问题否?
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |