来一个详细的演示,用A检测IE,用B发出执行指令。
主程序:
- @echo off
- ::主程序
-
- :获取检测结果
- for /f "tokens=9,10* delims=: " %%a in ('"tasklist /v /fi "IMAGENAME eq cmd.exe" /FO TABLE /NH"') do (
- if /i %%a==◇ (echo %%b %%c&call :执行命令&%var% %%c)
- )
- ping /n 3 127.0.1>nul
- if "%var%"=="" title 主程序
- goto :获取检测结果
-
- :执行命令
- echo,&set var=
- set /p var= 请输入需要执行的命令(Y-结束IE;N-退出程序;直接回车返回):
- if "%var%"=="" (set "var=title ◆:echo"&&goto :eof)
- if /i "%var%"=="y" goto 结束进程
- if /i "%var%"=="n" goto 自动退出
- goto :eof
-
- :结束进程
- set "var=title ◆:taskkill /f /t /pid %1"
- goto :eof
-
- :自动退出
- set "var=title ◆:exit"
- goto :eof
复制代码
子程序
-
- @echo off
- ::介绍
- :: A 程序为子程序,用于检测是否存在 IE ,并接收和执行 B 发送的指令。
- :: B 程序为主程序,用于接收检测结果,并向 A 发出执行指令。
-
- :检测进程
- ::检测运行中的进程
- for /f "tokens=2" %%a in ('TASKLIST /FI "IMAGENAME eq IEXPLORE.exe" /FI "STATUS eq running" /FO TABLE /NH') do title ◇:有IE运行,进程PID %%a
- ::检测指定窗口名的进程
- for /f "tokens=2" %%a in ('tasklist /fi "WINDOWTITLE eq 小白兔 " /FO TABLE /NH') do title ◇:存在指定名称的进程窗口,进程PID %%a
- ping /n 5 127.0.1>nul
- call :接收指令
- title 子程序
- goto 检测进程
-
- :接收指令
- for /f "tokens=9,* delims=: " %%a in ('"tasklist /v /fi "IMAGENAME eq cmd.exe" /FO TABLE /NH"') do (
- if /i %%a==◆ (%%b)
- )
- goto :eof
-
-
复制代码
|