|
本帖最后由 dos时代菜鸟 于 2016-7-19 12:08 编辑
循环判断 系统进程中是否存在 001.exe 如果不存在就运行 002.exe ,10秒后关闭002进程,,循环间隔 10秒。
1、将当前进程转换成文件通过 for 调取,可能造成时间上的误差,
2、002进程未必能在10秒后开启,
所以给你改进如下:
1、直接用 for 对tasklist命令结果进行分析 2、增加 002 进程的存在的循环判断。 win7.ch.x86 环境调试通过。
- @echo off
- :loop1
- echo.
- echo loop1 循环监视 notepad.exe 进程,如果进程消失,就启动 iexplore.exe
- timeout /t 10 /nobreak >nul
- FOR /F %%A IN ('tasklist /FI "IMAGENAME eq notepad.exe" /FO CSV') do (
- if "%%A" == "信息:" (
- start iexplore.exe
- :loop2
- echo.
- echo loop2 循环等待 iexplore.exe 进程,如果出现就关闭之,并退出 loop2 循环
- timeout /t 5 /nobreak >nul
- FOR /F "skip=1" %%A IN ('tasklist /FI "IMAGENAME eq iexplore.exe" /FO CSV') do (
- taskkill /f /im iexplore.exe
- goto loop1
- )
- goto loop2
- ) else (
- goto loop1
- )
- )
复制代码
|
|