1

На Mac и Linux вы можете запустить

pkill -f "(chrome)?(--headless)"

убить всех безголовых экземпляров Chrome.

Я хотел бы что-то подобное, что будет работать на Windows.

1 ответ1

1

К сожалению, CommandLine нелегко получить с помощью обычных команд управления процессами, поэтому нам нужно углубиться в WMI. Это делает команду более сложной, но вы можете использовать псевдоним или скрыть ее в сценарии / функции, которую вы можете использовать повторно.

Вот пример того, как вы можете сделать это в PowerShell:

Get-CimInstance Win32_Process -Filter "Name = 'chrome.exe' AND CommandLine LIKE '%--headless%'" | %{Stop-Process $_.ProcessId}

Немного обобщив, мы можем также получить:

$name = 'chrome.exe'
$cmdcontains '--headless'
Get-CimInstance Win32_Process -Filter "Name = '$name' AND CommandLine LIKE '%$cmdcontains%'" | %{Stop-Process $_.ProcessId}

В качестве альтернативы, Name может использовать более слабое соответствие или мы можем фильтровать чисто по CommandLine, как вы делаете в настоящее время:

Get-CimInstance Win32_Process -Filter "CommandLine LIKE '%chrome.exe%--headless%'" | %{Stop-Process $_.ProcessId}

В более общем смысле вы можете расширить его до командлета с помощью сценария: https://technet.microsoft.com/en-us/library/ff677563.aspx


Тот же процесс применяется, если вы хотите сделать это в cmd, за исключением того, что вам нужно извлечь PID из выходных данных wmic и передать их в taskkill .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .