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 オプションを使用すると、特定の条件に一致するプロセスのみを対象にできます。

フィルターの主な条件

フィルター名演算子説明
STATUSeq, neプロセスの状態
IMAGENAMEeq, neプロセス名
PIDeq, ne, gt, lt, ge, leプロセス ID
MEMUSAGEeq, ne, gt, lt, ge, leメモリ使用量(KB)
USERNAMEeq, ne実行ユーザー
WINDOWTITLEeq, 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 #プロセス #コマンド