2016年12月13日

【PowerShell】コマンド履歴をクリアする



コマンド履歴をクリアするには、Clear-Historyを使用します。

構文
Clear-History [[-Id] <コマンドID>] [[-Count] <クリアするエントリ数>] [-Newest]


履歴を全てクリアする

例えば下記のようにコマンド履歴があったとします。
PS C:\work> Get-History

  Id CommandLine
  -- -----------
   1 cd c:\work
   2 dir
   3 Start-Process -FilePath "notepad.exe"
   4 Get-History
   5 Get-Help Get-ChildItem

この履歴をすべてクリアするには単純にClear-Historyを実行します。
PS C:\work> Clear-History
PS C:\work>
PS C:\work> Get-History

  Id CommandLine
  -- -----------
   7 Clear-History
Clear-Historyを実行する前の履歴がすべてクリアされました。



-Id

指定したIDのコマンドをクリアします。
例えば下記のようにコマンド履歴があったとします。
PS C:\work> Get-History

  Id CommandLine
  -- -----------
   1 cd c:\work
   2 Get-ChildItem
   3 Get-Help Copy-Item
   4 Get-Clipboard
   5 Get-Clipboard

この履歴のId=3のコマンドをクリアするには次のようします。
PS C:\work> Clear-History -Id 3
PS C:\work>
PS C:\work> Get-History

  Id CommandLine
  -- -----------
   1 cd c:\work
   2 Get-ChildItem
   4 Get-Clipboard
   5 Get-Clipboard
   6 Get-History
   7 Clear-History -Id 3
Id=3のコマンドがクリアされました。



直近の指定した数分コマンドをクリア

例えば下記のようにコマンド履歴があったとします。
PS C:\work> Get-History

  Id CommandLine
  -- -----------
   1 cd c:\work
   2 Get-ChildItem
   4 Get-Clipboard
   5 Get-Clipboard
   6 Get-History
   7 Clear-History -Id 3

この履歴の直近の3つのコマンドをクリアするには次のようにします。
PS C:\work> Clear-History -Count 3 -Newest
PS C:\work>
PS C:\work> Get-History

  Id CommandLine
  -- -----------
   1 cd c:\work
   2 Get-ChildItem
   4 Get-Clipboard
   5 Get-Clipboard
   9 Clear-History -Count 3 -Newest



指定したIDからCount数分遡って履歴をクリア

例えば下記のようにコマンド履歴があったとします。
PS C:\work> Get-History

  Id CommandLine
  -- -----------
   1 cd c:\work
   2 Get-ChildItem
   4 Get-Clipboard
   5 Get-Clipboard
   9 Clear-History -Count 3 -Newest
  10 Get-History
  11 Get-History
  12 Start-Process -FilePath "notepad.exe"

この履歴から、Id=5から遡って3つのコマンド履歴をクリアするには次のようにします。
PS C:\work> Clear-History -Id 5 -Count 3
PS C:\work>
PS C:\work> Get-History

  Id CommandLine
  -- -----------
   1 cd c:\work
   9 Clear-History -Count 3 -Newest
  10 Get-History
  11 Get-History
  12 Start-Process -FilePath "notepad.exe"
  13 Get-History
  14 Clear-History -Id 5 -Count 3
2, 4, 5のコマンドがクリアされました。


<関連記事>
【PowerShell】コマンド履歴からコマンドを実行する
【PowerShell】コマンド履歴に追加する
【PowerShell】入力されたコマンドの履歴を取得する
【PowerShell】コマンドの実行時間を計測する
【PowerShell】指定した期間動作を一時停止する


スポンサーリンク