したがって、1つのbatファイルから開始したプロセスがあります。他の人からそれを止める方法は?
名前がわかっているプロセスを終了するには、次を試してください。
taskkill /IM notepad.exe
これは、閉じるように要求しますが、拒否したり、「変更を保存する」などを提案する場合があります。
taskkill /F /IM notepad.exe
TASKKILLは、Windowsの一部のHome/basicエディションでは利用できない場合があるため、いくつかの選択肢があります。
TSKILL processName
または
TSKILL PID
processName
の接尾辞は.exe
であってはならず、18文字に制限されていることに注意してください。
別のオプションはWMIC
です:
wmic Path win32_process Where "Caption Like 'MyProcess.exe'" Call Terminate
wmicはtaskkillよりもさらに柔軟性を提供します。wmic Path win32_process get
を使用すると、フィルタリング可能な使用可能なフィールドを確認できます。
バッチファイルからプロセスを開始すると、そのプロセスを開始したバッチファイルへのヒントのない別のプロセスとして開始します(その間に実行が終了するため、親プロセスIDのようなものは役に立ちません)。
プロセス名がわかっていて、実行中のすべてのプロセス間で一意である場合は、コメントで@IVladが示唆するように、taskkill
を使用できます。
一意でない場合は、ジョブを調べてください。これらは、終了すると、生成されたすべての子プロセスを終了します。
PowerShellを使用しないのはなぜですか?
Stop-Process -Name notepad
また、バッチファイルを使用している場合:
powershell -Command "Stop-Process -Name notepad"
powershell -Command "Stop-Process -Id 4232"
taskkill/F/IM notepad.exeこれは、タスクマネージャーからタスクを強制終了する最適な方法です。