本文共 1060 字,大约阅读时间需要 3 分钟。
因为bat在任务管理器中的名字比较特殊,并不是直接程序名,所以taskkill的时候会比较麻烦,需要在bat进程的路径下创建一个杀死该bat的bat(- -有点绕)
run.bat@echo offsetlocal enabledelayedexpansionset base_dir="%~dp0"set title_name=%base_dir%set title_name_replace=%title_name:\=/% rem 设置标题名字title %title_name_replace%echo "runningggggg"pause
kill.bat
@echo offrem 获取本bat的路径(由于本bat和要被杀死的bat在同一路径下,所以获取本bat所在路径)set base_dir="%~dp0"echo kill %base_dir%set title_name=%base_dir%set title_name_replace=%title_name:\=/% for /f "tokens=2 delims=," %%a in ('tasklist /v /fo csv ^| findstr /li %title_name_replace%') do (taskkill /pid %%~a echo kill %%~a success)pause
*tokens=2——取第二列 tokens=有时表示提取全部。 tokens=m表示提取第m列。 tokens=m,n表示提取第m列和第n列。 tokens=m-n表示提取第m列至第n列。 Tokens=*表示删除每行前面的空格。忽略行首的所有空格。 tokens=m*提取第m列以后的所有字符,星号表示剩余的字符。 tokens=m,*提取第m列以后的所有字符,星号表示剩余的字符。 输出变量的个数由定义了的tokens决定。
例: Do you known i love you? for /f "tokens=5 delims= " %%a in (1.txt)
do ( echo %%a ) 将输出love
delims=,——分隔符为逗号*
tasklist——进程列表
先用tasklist 输入进程列表给find ,让find找出qq.exe进程,如果找到,那执行下面的结束操作,找不到就退出bat tasklist|find /i “qq.exe” ||exit taskkill /im qq.exe /f转载地址:http://oyfci.baihongyu.com/