taskkillを使用して、名前でプロセスを強制終了し、特定のパスから作成する方法は?
taskkill / F / IM
確かに、2つの異なる場所C:\ Dir1とC:\Dir2から開始された2つのプロセスを区別することはできません。
tasklistにはパス名を取得するためのスイッチがありますか
taskkillを使用して、名前でプロセスを強制終了し、特定のパスから作成する方法は?
taskkill / F / IM
確かに、2つの異なる場所C:\ Dir1とC:\Dir2から開始された2つのプロセスを区別することはできません。
tasklistにはパス名を取得するためのスイッチがありますか
taskkill
できません。ただし、オプションの場合は PowerShell を使用できます。
(Get-WmiObject Win32_Process | Where-Object { $_.Path.StartsWith('C:\Dir1') }).Terminate()
ジョーイの答えに基づく:
wmic Path win32_process Where "CommandLine Like '%C:\\Dir1\\image.exe%'" Call Terminate
このようにして、Path が null (理由がわからない) で PowerShell を必要としない場合に NullReferenceException を回避します。
参照: https://superuser.com/questions/52159/kill-a-process-with-a-specific-command-line-from-command-line
警告
コマンドラインで実行されている他のプロセスがそのイメージ パスを含む場合は危険です。例えば:
> start cmd /k "C:\windows\system32\notepad.exe"
> wmic Path win32_process where "CommandLine Like '%C:\\Windows\\system32\\notepad.exe%'" get caption,processid,executablePath,commandline
Caption CommandLine ExecutablePath ProcessId
cmd.exe cmd /k "C:\windows\system32\notepad.exe" C:\WINDOWS\system32\cmd.exe 11384
notepad.exe C:\windows\system32\notepad.exe C:\windows\system32\notepad.exe 9684
では... "%C:\Dir1\image.exe%" の代わりに "C:\Dir1\image.exe%" を使用するとどうなるでしょうか?
このプログラムをエクスプローラーから起動した場合、そのコマンドラインは引用符で囲まれている可能性があります。無視すると、一致するものはありません。
> wmic Path win32_process where "CommandLine Like '%C:\\Windows\\system32\\notepad.exe%'" get caption,processid,executablePath,commandline
Caption CommandLine ExecutablePath ProcessId
notepad.exe "C:\WINDOWS\system32\notepad.exe" C:\WINDOWS\system32\notepad.exe 108
> wmic Path win32_process where "CommandLine Like 'C:\\Windows\\system32\\notepad.exe%'" get caption,processid,executablePath,commandline
No Instance(s) Available.
そのため、l0pan のanswerのように「ExecutablePath」を使用することをお勧めします。
次のコマンドを使用します (powershell がなくても機能します)。
wmic process where ExecutablePath='C:\\Dir1\\image.exe' delete
注: ExecutablePath はwmic
、Windows 8 で管理者として実行している場合にのみ、すべてのプロセスにアクセスできます。