2016年12月14日

【PowerShell】コマンド履歴に追加する



コマンド履歴に追加するには、Add-Historyを使用します。

構文
Add-History [[-InputObject] <オブジェクト>]


CSVファイルからのインポート

コマンド履歴をCSVファイルに出力し、それをインポートして履歴に追加することが出来ます。

例えば、次のような履歴があったとします。
PS C:\work> Get-History

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

これをCSVファイルにエクスポートします。
PS C:\work> Get-History | Export-Csv C:\work\history.csv

そして、次にこのCSVファイルをインポートします。
PS C:\work> Import-Csv .\history.csv | Add-History
PS C:\work>
PS C:\work> Get-History

  Id CommandLine
  -- -----------
   1 cd c:\work
   2 dir
   3 Start-Process -FilePath "notepad.exe"
   4 Get-Help Copy-Item
   5 Get-History | Export-Csv C:\work\history.csv
   6 Import-Csv .\history.csv | Add-History
   7 cd c:\work
   8 dir
   9 Start-Process -FilePath "notepad.exe"
  10 Get-Help Copy-Item
CSVファイルの履歴が後ろに追加されました。


オブジェクト変数に読み込んだリストを追加する

CSVファイルをオブジェクト変数に読み込み、履歴に追加する方法です。
PS C:\work> $a = Import-Csv C:\work\history.csv
PS C:\work> Add-History -InputObject $a -Passthru

  Id CommandLine
  -- -----------
   5 cd c:\work
   6 dir
   7 Start-Process -FilePath "notepad.exe"
   8 Get-Help Copy-Item
$aにインポートしたCSVデータを読み込み、-InputObjectパラメータで履歴を追加しています。

PS C:\work> Get-History

  Id CommandLine
  -- -----------
   1 cd c:\work
   2 dir
   3 $a = Import-Csv C:\work\history.csv
   4 Add-History -InputObject $a -Passthru
   5 cd c:\work
   6 dir
   7 Start-Process -FilePath "notepad.exe"
   8 Get-Help Copy-Item
読み込んだ履歴が後ろに追加されました。


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


スポンサーリンク