来一个详细的演示,用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 :eofCOPY |
子程序
| | | @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 | | | | COPY |
|