我需要关闭特定Chrome配置文件的所有窗口。假设我执行:
chrome.exe -remote-debugging-port=4000 --user-data-dir=F://chrome
在cmd / bat中打开新的Chrome配置文件。我需要从cmd / bat关闭此特定的Chrome配置文件。
我已经尝试过了:
taskkill /IM chrome.exe -remote-debugging-port=4000 --user-data-dir=F://chrome
但是它不起作用。
答案 0 :(得分:0)
您可以使用下面的批处理文件来完成此操作:
for /f "tokens=3 delims=," %%a in ('wmic process where "caption='chrome.exe'" get processID^,commandline /format:csv ^| FIND "-remote-debugging-port=4000 --user-data-dir=F://chrome"') do set _pid=%%a
taskkill /f /pid %_pid% /t
wmic process where "caption='chrome.exe'" get processID^,commandline /format:csv
列出了所有chrome.exe
进程,其中包含用于启动它们的命令行以及将用于杀死它的进程ID。|
)管道(FIND "-remote-debugging-port=4000 --user-data-dir=F://chrome"
)到chrome.exe
中,将仅返回以您使用的命令开始的for /f "tokens=3 delims=," %%a in ("...") do set _pid=%%a
进程。
_pid
会将wmic
环境变量设置为我们要终止的进程的进程ID。
find
命令与taskkill /f /pid %_pid% /t
命令结合使用只会给我们一个结果。如果您多次使用该命令,则只会在列表中找到最后一个进程的进程ID。
/f
:
/pid %_pid%
强制任务结束,因为否则Chrome将保持打开状态。for
将提供我们在/t
循环中获得的进程ID。 taskkill
告诉{{1}}杀死整个进程树。
由于每个Chrome标签和扩展程序都在其自己的进程中运行,因此我们希望确保它们也都被杀死。