目的:关闭命令行参数中包含"AHK云"的进程
@echo off
setlocal enabledelayedexpansion
REM 执行WMIC命令并筛选包含"AHK云"字符的进程,并将其关闭
set "pids_to_kill="
for /f "tokens=1,2" %%i in ('wmic process where "name='autohotkey.exe' and commandline like '%%AHK云%%'" get ProcessId ^| findstr /r "[0-9]"') do (
set "commandLine=%%i"
echo !commandLine!
set "pids_to_kill=!pids_to_kill! !commandLine!"
)
REM echo !pids_to_kill!
for %%i in (%pids_to_kill%) do (
REM echo Closing process with PID: %%i
taskkill /F /PID %%i
)
endlocal
pause
关键之处是不要把taskkill放到第一个for循环中,会出错,把待关闭的进程pid通过变量pids_to_kill保存,然后在for循环外部进行关闭