- @echo off&setlocal enabledelayedexpansion&title Test
- for %%a in ("%cd%.tmp") do set dir=%%~dpa
- for /f "tokens=2" %%a in ('tasklist /fi "imagename eq cmd.exe" /nh') do set pid=%%a&goto next
- :next
- echo @echo off>%temp%\youjun.bat
- echo :loop>>%temp%\youjun.bat
- echo set zhujunpid=>>%temp%\youjun.bat
- echo for /f "tokens=2" %%%%a in ^('tasklist /fi "pid eq %pid%" /nh') do set "zhujunpid=%%%%a">>%temp%\youjun.bat
- echo if not defined zhujunpid ^(>>%temp%\youjun.bat
- echo echo 被关闭时间是在 [%%date%%] [%%time%%]^>"%dir%关闭时间.txt">>%temp%\youjun.bat
- echo start "" "%dir%关闭时间.txt">>%temp%\youjun.bat
- echo>>%temp%\youjun.bat start %~fs0
- echo echo had^>%temp%\had.tmp>>%temp%\youjun.bat
- echo exit>>%temp%\youjun.bat
- echo ^)>>%temp%\youjun.bat
- echo goto loop>>%temp%\youjun.bat
- :lp
- start /min %temp%\youjun.bat
- :loop
- set n=0
- for /f %%a in ('tasklist /fi "imagename eq cmd.exe" /nh') do cls&set/a n+=1
- if %n% leq 2 goto lp
- if not exist %temp%\had.tmp (
- title 这只是测试ing。。。o^(∩_∩^)o。。。
- ) else (
- title 我又复活了。。。o^(∩_∩^)o。。。
- if %n% gtr 4 (
- del %dir%关闭时间.txt;%temp%\had.tmp;%temp%\youjun.bat
- pause>nul
- )
- )
- for /l %%a in (1 1 400) do cls>nul
- goto loop
复制代码 现在的代码只能完成前面两种情况。在kill cmd.exe之后仍能复活,恐怕BAT的确做不到了。
起初的代码在结束“友军”之后就全部OVER了,现在结束“友军”之后“主军”仍能复活,除非全部kill。
[ 本帖最后由 pusofalse 于 2008-8-22 01:07 编辑 ] |