标题: [系统相关] 【已解决】批处理如何检测多个进程再进行下一步? [打印本页]
作者: 小智BAT 时间: 2014-10-14 10:38 标题: 【已解决】批处理如何检测多个进程再进行下一步?
本帖最后由 小智BAT 于 2014-10-16 14:14 编辑
如题。以下是检测360没退出而提示的,但我需要检测除360外,还需要检测ksafetray.exe,kxetray.exe
,QQPCTray.exe等是否运行,运行就提示对应的进程,如果全部不运行才可以进行下一步,该写。- :daxfsddo
- cls
- color 4f
- tasklist /nh|find /i "360tray.exe" >nul
- if ERRORLEVEL 1 (goto daxfsddonext) else (echo 检测到360安全软件没有退出,请先退出“360安全卫士”和“360杀毒”再按任意键重试。)
- pause >nul&goto daxfsddo
- :daxfsddonext
复制代码
作者: DAIC 时间: 2014-10-14 10:54
本帖最后由 DAIC 于 2014-10-14 10:55 编辑
- @echo off
- :daxfsddo
- cls
- color 4f
- tasklist /nh | find /i "360tray.exe" >nul && echo 请先退出 360tray.exe 再按任意键重试 && pause && goto :daxfsddo
- tasklist /nh | find /i "ksafetray.exe" >nul && echo 请先退出 ksafetray.exe 再按任意键重试 && pause && goto :daxfsddo
- tasklist /nh | find /i "kxetray.exe" >nul && echo 请先退出 kxetray.exe 再按任意键重试 && pause && goto :daxfsddo
- tasklist /nh | find /i "QQPCTray.exe" >nul && echo 请先退出 QQPCTray.exe 再按任意键重试 && pause && goto :daxfsddo
-
- :daxfsddonext
- echo 下一步
- pause
复制代码
作者: DAIC 时间: 2014-10-14 10:56
- @echo off
- :daxfsddo
- cls
- color 4f
- for %%i in (360tray.exe ksafetray.exe kxetray.exe QQPCTray.exe) do (
- tasklist /nh | find /i "%%i" >nul && echo 请先退出 %%i 再按任意键重试 && pause && goto :daxfsddo
- )
-
- :daxfsddonext
- echo 下一步
- pause
复制代码
作者: 小智BAT 时间: 2014-10-14 11:16
回复 3# DAIC
请问可以定义提示退出什么进程是文字显示模式吗?,如检测到QQPCTray.exe就提示请退出电脑管家。
如有360tray.exe就提示请退出360安全软件,
如发现多个进程共存时,则提示多个对应的提示语。
作者: DAIC 时间: 2014-10-14 12:22
回复 4# 小智BAT
2楼那个代码,你想显示什么就把echo后面改成什么。
作者: 小智BAT 时间: 2014-10-14 12:45
回复 5# DAIC
你把中一个改为常用进程,如cmd.exe和QQ.exe,你运行时退出任意一个再按任意键就知道什么情况。
作者: 小智BAT 时间: 2014-10-14 12:47
回复 5# DAIC
我要的是检测到两个进程要同时提示两个进程存在。
作者: DAIC 时间: 2014-10-14 13:08
- @echo off
- :daxfsddo
- cls
- color 4f
- set n=0
- tasklist /nh | find /i "360tray.exe" >nul && echo 360tray.exe && set n=1
- tasklist /nh | find /i "ksafetray" >nul && echo ksafetray.exe && set n=1
- tasklist /nh | find /i "kxetray.exe" >nul && echo kxetray.exe && set n=1
- tasklist /nh | find /i "QQPCTray.exe" >nul && echo QQPCTray.exe && set n=1
- if %n% neq 0 (
- echo 请先退出以上程序再按任意键重试
- pause
- goto :daxfsddo
- )
- :daxfsddonext
- echo 下一步
- pause
复制代码
作者: 小智BAT 时间: 2014-10-14 13:37
回复 8# DAIC
多谢大大。。。。
作者: apang 时间: 2014-10-14 18:44
本帖最后由 apang 于 2014-10-14 18:54 编辑
如果进程名不含空格的话,也可以这样- @echo off & setlocal enabledelayedexpansion
- set "explorer.exe=资源管理器"
- set "Iexplore.exe=IE"
- set "NotePad.exe=记事本"
- set "re=explorer.exe Iexplore.exe NotePad.exe "
- (for /f %%a in ('tasklist^|findstr /ib "%re: =\> %"') do (
- echo,%%a 杀死 !%%a!
- ))||echo,Next
- pause
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |