Windows 批处理命令中的 For Loop、List 和 TaskKill

For Loop, List, and TaskKill in Windows Batch Commands

我想创建一个可执行文件列表,然后创建一个 for 循环来 taskkill 列表中的所有可执行文件。我用这个作为参考: Create list or arrays in Windows Batch ,但我还是想不通。

这是我试过的...

set list = A B C D
for %%a in (%list%) do ( 
taskkill /F %%a
)

方法 1:从批处理文件中设置列表:

@echo off
setlocal enabledelayedexpansion
:assuming you want to kill the calc.exe, paint.exe and notepad.exe processes
set list=calc paint notepad
for %%a in (!list!) do (
set process=%%a
taskkill /f /im !process!.exe
)
endlocal

将上述批处理文件另存为 method1.bat 或将其包含在您的批处理文件中合适的位置。

方法 2:有一个外部可执行文件列表: 列出要终止的可执行文件,将其命名为 list.txt 并确保列表和批处理文件都在同一个文件夹中。 例如

List.txt:

notepad.exe

paint.exe

calc.exe

你的批处理文件:

@echo off
::save this batch file as method2.bat or include in your existing batch file
setlocal enabledelayedexpansion
for /f "delims=" %%e in (list.txt) do (
set process=%%e
taskkill /f /im !process!
)
endlocal

希望对您有所帮助!