コマンドプロンプトやPowerShellのコマンド履歴を確認・削除する方法

コマンドプロンプトやPowerShellのコマンド履歴を確認・削除する方法

Windowsのコマンド操作のインターフェースである「コマンドプロンプト」や「PowerShell」には、履歴機能が搭載されており過去に実行したコマンドが履歴として保存され、同じコマンドを履歴から簡単に再実行できるようになっています。

そこでここでは、コマンドプロンプトとPowerShellのそれぞれで、コマンドの実行履歴を表示して再実行する方法や、記録されている履歴を削除する方法を解説します。

コマンドプロンプトの場合

コマンド履歴を表示する

コマンドプロンプトでは、現在開いているウィンドウ内(現在のセッション)で実行したコマンド履歴が保存されており、キーボードの上下の矢印キー(↑↓方向キー)を押せば、現在開いているウィンドウで実行したコマンドの履歴を順に呼び出すことができ、PageUp/PageDownキーを押せば最初または最後に実行したコマンドを呼び出すことができます。

また、F7キーを押せば、コマンド履歴がオーバーレイ表示され、上下の矢印キーで履歴からコマンドを呼び出すことができ、さらにF9 キーを押せば、履歴の横に表示されている番号を入力して呼び出すこともできます。

コマンドプロンプトやPowerShellのコマンド履歴を確認・削除する方法

コマンドで履歴を表示したいときは、以下のコマンドを実行することで、現在のウィンドウで実行したコマンドの履歴を表示できます。

> doskey /h

コマンドプロンプトやPowerShellのコマンド履歴を確認・削除する方法

コマンド履歴を削除する

コマンドプロンプトの履歴は、現在開いているウィンドウ内(現在のセッション)でのみ保持され、ウィンドウを閉じると履歴はすべて消去されます。

現在開いているウィンドウ内(現在のセッション)の履歴を削除したいときは「Alt+F7」キーを押すか、以下のコマンドを実行します。

> doskey /listsize=0

なお、「doskey /listsize=0」コマンドを実行すると、その後に実行するコマンドは履歴に残らなくなるので注意が必要です。

PowerShellの場合

コマンド履歴を表示する

PowerShellでは、過去に実行したコマンドの履歴が記録されており(既定では、最大4096件記録されています。)、キーボードの上下の矢印キー(↑↓方向キー)を押すことで、履歴を順に呼び出して再実行できます。

また、historyコマンドを実行すれば、過去に実行したコマンドの履歴をテキストファイルで保存できます。テキストファイルは以下の場所に保存されます。

%appdata%\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt

コマンドで履歴を表示したいときは、以下のコマンドを実行することで、現在のウィンドウ(現在のセッション)で実行したコマンドの履歴は表示できます。

PS> Get-History

PowerShellには、組み込みの履歴(セッション内で実行したコマンドの履歴)と、 PSReadLineモジュールによって管理される履歴(すべてのセッションで実行したコマンドの履歴)という2つの履歴機能があります。 それぞれの履歴は個別に管理されますが、両方の履歴は、 PSReadLineが読み込まれるセッションで使用できます。

about_History - PowerShell | Microsoft Learn

コマンド履歴を削除する

PowerShellには、現在のウィンドウ(現在のセッション)で実行したコマンドの履歴を削除するためのコマンドレット「Clear-History」が用意されており、このコマンドを実行することで現在のウィンドウで実行したコマンドの履歴を削除できます。

PS> Clear-History

PSReadLineモジュールによって管理される履歴(すべてのセッションで実行したコマンドの履歴)を削除したいときは、以下のコマンドで履歴が記録されているファイルを削除します。

PS> Remove-Item $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine

コマンドプロンプトやPowerShellのコマンド履歴を確認・削除する方法

あとがき

コマンドプロンプトやPowerShellを使ってコマンド操作を行うことがよくあるなら、上に紹介した履歴の確認や削除方法が役立つときがあるでしょう。ご活用あれ。