Windowsのコマンド操作のインターフェースである「コマンドプロンプト」や「PowerShell」には、履歴機能が搭載されており過去に実行したコマンドが履歴として保存され、同じコマンドを履歴から簡単に再実行できるようになっています。
そこでここでは、コマンドプロンプトとPowerShellのそれぞれで、コマンドの実行履歴を表示して再実行する方法や、記録されている履歴を削除する方法を解説します。
目次
コマンドプロンプトの場合
コマンド履歴を表示する
コマンドプロンプトでは、現在開いているウィンドウ内(現在のセッション)で実行したコマンド履歴が保存されており、キーボードの上下の矢印キー(↑↓方向キー)を押せば、現在開いているウィンドウで実行したコマンドの履歴を順に呼び出すことができ、PageUp/PageDownキーを押せば最初または最後に実行したコマンドを呼び出すことができます。
また、F7キーを押せば、コマンド履歴がオーバーレイ表示され、上下の矢印キーで履歴からコマンドを呼び出すことができ、さらにF9 キーを押せば、履歴の横に表示されている番号を入力して呼び出すこともできます。
コマンドで履歴を表示したいときは、以下のコマンドを実行することで、現在のウィンドウで実行したコマンドの履歴を表示できます。
> doskey /h
コマンド履歴を削除する
コマンドプロンプトの履歴は、現在開いているウィンドウ内(現在のセッション)でのみ保持され、ウィンドウを閉じると履歴はすべて消去されます。
現在開いているウィンドウ内(現在のセッション)の履歴を削除したいときは「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が読み込まれるセッションで使用できます。
コマンド履歴を削除する
PowerShellには、現在のウィンドウ(現在のセッション)で実行したコマンドの履歴を削除するためのコマンドレット「Clear-History」が用意されており、このコマンドを実行することで現在のウィンドウで実行したコマンドの履歴を削除できます。
PS> Clear-History
PSReadLineモジュールによって管理される履歴(すべてのセッションで実行したコマンドの履歴)を削除したいときは、以下のコマンドで履歴が記録されているファイルを削除します。
PS> Remove-Item $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine
あとがき
コマンドプロンプトやPowerShellを使ってコマンド操作を行うことがよくあるなら、上に紹介した履歴の確認や削除方法が役立つときがあるでしょう。ご活用あれ。