如何关闭使用cmd / bat打开的特定Chrome配置文件?

时间:2019-05-26 16:34:58

标签: google-chrome batch-file cmd

我需要关闭特定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

但是它不起作用。

1 个答案:

答案 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标签和扩展程序都在其自己的进程中运行,因此我们希望确保它们也都被杀死。