特定のコマンドラインですべてのプロセスを強制終了するコマンドラインユーティリティはありますか?
たとえば、「-jar selenium-server.jar」を含むコマンドラインで「java.exe」という名前のすべてのプロセスを強制終了します。これはプロセスエクスプローラーで可能です。
特定のコマンドラインですべてのプロセスを強制終了するコマンドラインユーティリティはありますか?
たとえば、「-jar selenium-server.jar」を含むコマンドラインで「java.exe」という名前のすべてのプロセスを強制終了します。これはプロセスエクスプローラーで可能です。
回答:
Windows XPでは、WMIC、WMIコンソールを使用してこれを簡単に行うことができます。コマンドプロパティから、次を入力します。
wmic Path win32_process Where "CommandLine Like '%-jar selenium-server.jar%'" Call Terminate
編集:
Aviatorのポートと同様に、エイリアス ' process 'をフルパス( ' path win32_process ')に置き換えました。このエイリアスは、すべてのOSで宣言されるとは限りません。
Get-Processと必要なプロセスのStartInfo.Argumentsを使用して、PowerShellでこれを行うことができると思います。
$procs = Get-Process java
foreach($proc in $procs)
{
if($proc.StartInfo.Arguments -contains "-jar selenium-server.jar")
{
kill $proc
}
}
(私はそれを完全にテストしていませんが、それを機能させるためにそれを微調整できるはずです)
パワーシェル:-
$oProcs = get-process explorer;foreach ($oProc in $oProcs){if ($oProc.Path.Contains('C:\Windows')) {Stop-Process $oProc.Id}}
BrainのPowerShellスクリプトのバリエーションを使用します。
これにより、コマンドラインおよびその他の情報も出力されます。
$processes = Get-WmiObject Win32_Process -Filter "name = 'java.exe'"
foreach($proc in $processes)
{
if($proc.CommandLine.Contains("selenium-server.jar"))
{
Write-Host "stopping proccess $($proc.ProcessId) with $($proc.ThreadCount) threads; $($proc.CommandLine.Substring(0, 50))..."
Stop-Process -F $proc.ProcessId
} else
{
Write-Host "skipping proccess $($proc.ProcessId) with $($proc.ThreadCount) threads; $($proc.CommandLine.Substring(0, 50))..."
}
}