ムービー ファイルのトランスコードが完了するたびにソフトウェアを終了する必要があります。これを自動化するために、小さなバッチ スクリプトを作成しました。その中で、次のように taskkill を使用しようとしました。
taskkill /im taskname.exe /t /f
しかし、常に次のエラー メッセージが表示されます: エラー: PID 6708 のプロセスを終了できませんでした。理由: タスクの実行中のインスタンスがありません。
また、管理者として cmd ウィンドウを起動し、PowerShell も試しました。しかし、その後にタスクリストを実行すると、タスクがまだ表示されます。
面白いのは、タスク マネージャーでタスクを右クリックしてタスクを終了すると、タスクが即座に終了することです。タスク マネージャーで「タスクの終了」はどのコマンドを呼び出すのでしょうか。バッチ ファイルで自動化できるものはありますか。
答え1
提案されたようにバロップサードパーティのコマンドライン アプリ nircmd.exe が役立ちました。
nircmd.exe killprocess processname
答え2
名前で強制終了できないが、プロセス ID がある場合は、PID で強制終了してみることができます。
for /f "delims== tokens=2" %%i in ('WMIC process where "Name='process.exe'" get ProcessId /value') do set pid=%%i
echo Going to kill PID: %pid%
taskkill.exe /PID %pid%