Как закрыть определенный профиль Chrome, который был открыт с помощью cmd / bat? - PullRequest
1 голос
/ 26 мая 2019

Мне нужно закрыть все окна определенного профиля Chrome.Предположим, я выполняю:

chrome.exe -remote-debugging-port=4000 --user-data-dir=F://chrome

в cmd / bat, чтобы открыть новый профиль Chrome.Мне нужно закрыть этот конкретный профиль Chrome из cmd / bat.

Я пробовал это:

taskkill /IM chrome.exe -remote-debugging-port=4000 --user-data-dir=F://chrome

, но он не работает.

1 Ответ

0 голосов
/ 30 мая 2019

Вы можете сделать это, используя пакетный файл ниже:

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 с командной строкой, использованной для их запуска, иидентификатор процесса, который мы будем использовать для его уничтожения.
  • Передача (|) этого в 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 в сочетании с командой find должна дать нам только один результат,Если вы использовали команду несколько раз, тогда в списке будет найден только идентификатор последнего процесса.

  • taskkill /f /pid %_pid% /t:

    • /f принудительно завершает задачу, потому что в противном случае Chrome останется открытым.
    • /pid %_pid% предоставит идентификатор процесса, который мы получили в цикле for.
    • /tговорит taskkill уничтожить все дерево процессов.

      Поскольку каждая вкладка и расширение Chrome выполняется в своем собственном процессе, мы хотим убедиться, что они также будут уничтожены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...