16

taskkillを使用して、名前でプロセスを強制終了し、特定のパスから作成する方法は?

taskkill / F / IM

確かに、2つの異なる場所C:\ Dir1とC:\Dir2から開始された2つのプロセスを区別することはできません。

tasklistにはパス名を取得するためのスイッチがありますか

4

5 に答える 5

14

taskkillできません。ただし、オプションの場合は PowerShell を使用できます。

(Get-WmiObject Win32_Process | Where-Object { $_.Path.StartsWith('C:\Dir1') }).Terminate()
于 2012-11-23T06:52:02.077 に答える
6

ジョーイの答えに基づく:

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」を使用することをお勧めします。

于 2013-11-22T17:59:58.020 に答える
6

次のコマンドを使用します (powershell がなくても機能します)。

wmic process where ExecutablePath='C:\\Dir1\\image.exe' delete

注: ExecutablePath はwmic、Windows 8 で管理者として実行している場合にのみ、すべてのプロセスにアクセスできます。

于 2014-05-06T18:41:05.783 に答える