PowerShellのコマンド履歴を保存/復元する

PowerShellのコマンド履歴は

Get-History

で取得できる。PowerShellはコマンド履歴をそのセッション中のものしか憶えていないため、PowerShellを起動しなおすとGet-Historyを実行しても空っぽだ。

これでは使いづらいので、セッション中のコマンド履歴を保存したり復元したりしたい。Get-Historyとコマンド履歴を追加するAdd-History、XMLシリアライズ/デシリアライズするExport/Import-Clixmlを利用することで、コマンド履歴をセッションをまたいで継続することができる。 履歴のファイルへの書き出しは

Get-History | Export-Clixml -path <履歴保存用ファイル>

ファイルから履歴への復元は

Import-Clixml -path <履歴保存用ファイル> | Add-History

復元した履歴は上下矢印キーでのプロンプトへの表示はできないが、

Get-History | where { <絞り込み> } | Invoke-History

などで実行できる。