web-dev-qa-db-ja.com

.BATファイルからプロセスを停止する方法は?

したがって、1つのbatファイルから開始したプロセスがあります。他の人からそれを止める方法は?

27
Rella

名前がわかっているプロセスを終了するには、次を試してください。

taskkill /IM notepad.exe

これは、閉じるように要求しますが、拒否したり、「変更を保存する」などを提案する場合があります。

taskkill /F /IM notepad.exe
39
fmark

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を使用すると、フィルタリング可能な使用可能なフィールドを確認できます。

4
npocmaka

バッチファイルからプロセスを開始すると、そのプロセスを開始したバッチファイルへのヒントのない別のプロセスとして開始します(その間に実行が終了するため、親プロセスIDのようなものは役に立ちません)。

プロセス名がわかっていて、実行中のすべてのプロセス間で一意である場合は、コメントで@IVladが示唆するように、taskkillを使用できます。

一意でない場合は、ジョブを調べてください。これらは、終了すると、生成されたすべての子プロセスを終了します。

1
Tomalak

PowerShellを使用しないのはなぜですか?

Stop-Process -Name notepad

また、バッチファイルを使用している場合:

powershell -Command "Stop-Process -Name notepad"
powershell -Command "Stop-Process -Id 4232"
0

taskkill/F/IM notepad.exeこれは、タスクマネージャーからタスクを強制終了する最適な方法です。

0
user8646878