TASKKILL(プロセス終了)
にメンテナンス済み
アプリケーションがフリーズして操作を受け付けなくなったとき、タスクマネージャーで終了する方法が一般的ですが、コマンドプロンプトからも TASKKILL コマンドを使ってプロセスを終了させることができます。
特にバッチファイルで自動化する場合や、複数のプロセスを一括で終了させたい場合に役立ちます。
TASKKILL の基本構文
構文
TASKKILL [オプション]
主要オプション
| オプション | 説明 |
|---|---|
/IM プロセス名 | プロセス名(イメージ名)で指定して終了 |
/PID プロセスID | プロセス ID で指定して終了 |
/F | 強制終了 |
/T | 子プロセスも含めて終了 |
/FI "フィルター" | フィルター条件に一致するプロセスを対象 |
プロセス名で終了する(/IM)
プロセス名(実行ファイル名)を指定してプロセスを終了します。
taskkill /IM notepad.exe
- □ ×
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
C:\users\user>taskkill /IM notepad.exe
成功: プロセス “notepad.exe” (PID 12345) に強制終了のシグナルを送信しました。
C:\users\user>
強制終了(/F)
通常の終了シグナルでプロセスが終了しない場合は、/F オプションで強制終了します。
taskkill /F /IM notepad.exe
通常終了と強制終了の違い
/F
なしの場合、プロセスに終了シグナル(WM_CLOSE)が送信され、アプリケーションは「保存しますか?」のようなダイアログを表示する場合があります。/F
を付けると、ダイアログなしで即座に終了します。
プロセス ID で終了する(/PID)
tasklist コマンドで確認したプロセス ID(PID)を指定して終了させることもできます。
taskkill /PID 12345
複数のプロセスを一度に終了
taskkill /PID 12345 /PID 67890
子プロセスも含めて終了する(/T)
/T オプションを使用すると、指定したプロセスとその子プロセスをまとめて終了できます。
taskkill /F /T /IM cmd.exe
/T オプションの注意
/T は子プロセスも含めて終了するため、意図しないプロセスが終了する可能性があります。特に
cmd.exe
を対象にする場合は、自分自身のコマンドプロンプトを終了してしまわないよう注意してください。
フィルターを使用する(/FI)
/FI オプションを使用すると、特定の条件に一致するプロセスのみを対象にできます。
フィルターの主な条件
| フィルター名 | 演算子 | 説明 |
|---|---|---|
STATUS | eq, ne | プロセスの状態 |
IMAGENAME | eq, ne | プロセス名 |
PID | eq, ne, gt, lt, ge, le | プロセス ID |
MEMUSAGE | eq, ne, gt, lt, ge, le | メモリ使用量(KB) |
USERNAME | eq, ne | 実行ユーザー |
WINDOWTITLE | eq, ne | ウィンドウタイトル |
応答なしのプロセスを終了
taskkill /F /FI "STATUS eq NOT RESPONDING"
- □ ×
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
C:\users\user>taskkill /F /FI "STATUS eq NOT RESPONDING"
成功: プロセス “app.exe” (PID 9876) に強制終了のシグナルを送信しました。
C:\users\user>
チェック
「応答なし」のプロセスだけを対象にできるため、フリーズしたアプリケーションを一括で終了させるのに便利です。
メモリ使用量が大きいプロセスを特定する
メモリ使用量が500MB以上のプロセスを確認
tasklist /FI "MEMUSAGE gt 500000"
上記で確認した後、必要に応じて対象プロセスを終了させることができます。
実践例
特定のアプリケーションを一括終了
close_browsers.cmd
@echo off
echo ブラウザを終了しています...
taskkill /F /IM chrome.exe >nul 2>&1
taskkill /F /IM msedge.exe >nul 2>&1
taskkill /F /IM firefox.exe >nul 2>&1
echo 完了しました。
バッチファイルで安全にプロセスを終了
safe_kill.cmd
@echo off
setlocal
set TARGET=notepad.exe
tasklist /FI "IMAGENAME eq %TARGET%" | findstr /I "%TARGET%" >nul
IF %ERRORLEVEL% EQU 0 (
echo %TARGET% を終了します。
taskkill /IM %TARGET%
) ELSE (
echo %TARGET% は実行されていません。
)
endlocal
TASKLIST と TASKKILL の連携
tasklist でプロセスを確認してから taskkill で終了する流れが一般的です。
プロセスの確認と終了
tasklist /FI "IMAGENAME eq notepad.exe"
taskkill /IM notepad.exe
まとめ
| 操作 | コマンド |
|---|---|
| プロセス名で終了 | taskkill /IM プロセス名 |
| 強制終了 | taskkill /F /IM プロセス名 |
| PID で終了 | taskkill /PID プロセスID |
| 子プロセスも含めて終了 | taskkill /F /T /IM プロセス名 |
| 応答なしのプロセスを終了 | taskkill /F /FI "STATUS eq NOT RESPONDING" |
関連記事
練習問題
#コマンドプロンプト
#バッチファイル
#TASKKILL
#プロセス
#コマンド