我在任务列表中有Process1,Process2,Process3我想写入循环或循环返回重复相同的任务来杀死'n'号码进程 我在批处理脚本中提到的。 下面是用于杀死进程的示例脚本
@Echo Off
Tasklist | Findstr /I “Process1”
IF ERRORLEVEL 1 GOTO :Killprocess
GOTO:EOF
:Killprocess
Taskkill /IM “Process1”
答案 0 :(得分:1)
如果你试图反复杀死同一个程序,只需在cmd.exe中执行tasklist,然后找到它的PID标记。 例如:
Image Name PID Session Name Mem Usage
========================= ======== ================ ============
firefox.exe 26356 Console 139,352 K
regedit.exe 24244 Console 9,768 K
cmd.exe 18664 Console 2,380 K
conhost.exe 2528 Console 7,852 K
notepad.exe 17364 Console 7,892 K
notepad.exe 24696 Console 22,028 K
notepad.exe 25304 Console 5,852 K
explorer.exe 2864 Console 72,232 K
之后,只需将PID放入文本中即可。我会这样运行程序:
@echo off
TASKLIST
TASKKILL /PID (your PID here) /F
TASKKILL /PID (PID 2) /F
这将自动终止您的任务。你不需要找到任务。如果该程序没有运行,那么它就不会杀死它。
如果您的流程不断更改其PID,或者不在同一会话下运行,请按原样运行:
@echo off
TASKLIST
TASKKILL /IM (program name) /F
TASKKILL /IM (program name 2) /F
同样,如果程序没有运行,程序也不会关闭。
希望这有帮助!
答案 1 :(得分:0)
感谢大家的建议......用脚本完成
@echo off
set len=3
set obj[0]=chrome.exe
set obj[1]=vlc.exe
set obj[2]=MicrosoftEdge.exe
set i=0
:loop
if %i% equ %len% goto :eof
for /f "usebackq delims== tokens=2" %%j in (`set obj[%i%]`) do (
TASKLIST |FINDSTR /I "%%j"
IF ERRORLEVEL 0 TASKKILL /IM "%%j" /F)
set /a i=%i%+1
goto loop