次の方法で共有


Add-History

セッション履歴にエントリを追加します。

構文

Add-History
   [[-InputObject] <PSObject[]>]
   [-PassThru]
   [<CommonParameters>]

説明

Add-History コマンドレットは、セッション履歴の末尾 (現在のセッション中に入力されたコマンドの一覧) にエントリを追加します。

セッション履歴は、セッション中に入力されたコマンドの一覧です。 セッション履歴は、コマンドの実行順序、状態、および開始時刻と終了時刻を表します。 各コマンドを入力すると、PowerShell によって履歴に追加され、再利用できるようになります。 セッション履歴の詳細については、about_Historyを参照してください。

セッション履歴は、PSReadLine モジュールによって管理される履歴とは別に管理されます。 両方の履歴は、PSReadLine が読み込まれるセッションで使用できます。 このコマンドレットは、セッション履歴でのみ機能します。 詳細については、about_PSReadLineを参照してください。

Get-History コマンドレットを使用すると、コマンドを取得して Add-Historyに渡すことができます。または、コマンドを CSV または XML ファイルにエクスポートしてからコマンドをインポートし、インポートしたファイルを Add-Historyに渡すことができます。 このコマンドレットを使用すると、履歴に特定のコマンドを追加したり、複数のセッションからのコマンドを含む 1 つの履歴ファイルを作成したりできます。

例 1: 別のセッションの履歴にコマンドを追加する

この例では、1 つの PowerShell セッションで入力されたコマンドを別の PowerShell セッションの履歴に追加します。

Get-History | Export-Csv -Path C:\testing\history.csv -IncludeTypeInformation
Import-Csv -Path C:\testing\history.csv | Add-History

最初のコマンドは、履歴内のコマンドを表すオブジェクトを取得し、History.csv ファイルにエクスポートします。

2 番目のコマンドは、別のセッションのコマンド ラインで入力されます。 Import-Csv コマンドレットを使用して、History.csv ファイルにオブジェクトをインポートします。 パイプライン演算子 (|) は、Add-History コマンドレットにオブジェクトを渡します。このコマンドレットは、History.csv ファイル内のコマンドを表すオブジェクトを現在のセッション履歴に追加します。

例 2: コマンドのインポートと実行

次の使用例は、History.xml ファイルからコマンドをインポートし、それらを現在のセッション履歴に追加してから、結合された履歴でコマンドを実行します。

Import-Clixml -Path C:\temp\history.xml | Add-History -PassThru | ForEach-Object -Process {Invoke-History}

最初のコマンドでは、Import-Clixml コマンドレットを使用して、History.xml ファイルにエクスポートされたコマンド履歴をインポートします。 パイプライン演算子は、コマンドを Add-History コマンドレットに渡し、現在のセッション履歴にコマンドを追加します。 PassThru パラメーターは、パイプラインに追加されたコマンドを表すオブジェクトを渡します。

その後、コマンドは ForEach-Object コマンドレットを使用して、結合された履歴の各コマンドに Invoke-History コマンドを適用します。 Invoke-History コマンドは、ForEach-Object コマンドレットの Process パラメーターで必要に応じて、中かっこ ({}) で囲まれたスクリプト ブロックとして書式設定されます。

例 3: 履歴の末尾にコマンドを追加する

次の使用例は、履歴の最初の 5 つのコマンドを履歴リストの末尾に追加します。

Get-History -Id 5 -Count 5 | Add-History

Get-History コマンドレットは、コマンド 5 で終わる 5 つのコマンドを取得します。 パイプライン演算子は、それらを Add-History コマンドレットに渡し、現在の履歴に追加します。 Add-History コマンドにはパラメーターは含まれませんが、PowerShell はパイプラインを介して渡されたオブジェクトを、Add-HistoryInputObject パラメーターに関連付けます。

例 4: .csv ファイル内のコマンドを現在の履歴に追加する

次の使用例は、History.csv ファイル内のコマンドを現在のセッション履歴に追加します。

$a = Import-Csv -Path C:\testing\history.csv
Add-History -InputObject $a -PassThru

Import-Csv コマンドレットは、History.csv ファイルにコマンドをインポートし、その内容を変数 $aに格納します。

2 番目のコマンドでは、Add-History コマンドレットを使用して、History.csv から現在のセッション履歴にコマンドを追加します。 InputObject パラメーターを使用して $a 変数を指定し、PassThru パラメーターを使用して、コマンド ラインに表示するオブジェクトを生成します。 PassThru パラメーターがないと、Add-History コマンドレットは出力を生成しません。

例 5: .xml ファイル内のコマンドを現在の履歴に追加する

次の使用例は、history.xml ファイル内のコマンドを現在のセッション履歴に追加します。

Add-History -InputObject (Import-Clixml -Path C:\temp\history.xml)

InputObject パラメーターは、コマンドの結果をかっこで囲んで Add-History コマンドレットに渡します。 最初に実行されるかっこ内のコマンドは、history.xml ファイルを PowerShell にインポートします。 その後、Add-History コマンドレットによって、ファイル内のコマンドがセッション履歴に追加されます。

パラメーター

-InputObject

セッション履歴に HistoryInfo オブジェクトとして追加されるエントリの配列を指定します。 このパラメーターを使用すると、HistoryInfo オブジェクト (Get-HistoryImport-Clixml、または Import-Csv コマンドレットによって返されるオブジェクトなど) を Add-Historyに送信できます。

型:PSObject[]
配置:0
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-PassThru

このコマンドレットは、各履歴エントリの HistoryInfo オブジェクトを返します。 既定では、このコマンドレットは出力を生成しません。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

入力

HistoryInfo

このコマンドレットには、HistoryInfo オブジェクトをパイプ処理できます。

出力

None

既定では、このコマンドレットは出力を返しません。

HistoryInfo

PassThru パラメーターを使用すると、このコマンドレットは HistoryInfo オブジェクトを返します。

メモ

セッション履歴は、セッション中に入力されたコマンドと ID の一覧です。 セッション履歴は、コマンドの実行順序、状態、および開始時刻と終了時刻を表します。 各コマンドを入力すると、PowerShell によって履歴に追加され、再利用できるようになります。 セッション履歴の詳細については、about_Historyを参照してください。

履歴に追加するコマンドを指定するには、InputObject パラメーターを使用します。 Add-History コマンドは、HistoryInfo オブジェクトのみを受け入れます。たとえば、Get-History コマンドレットによって各コマンドに対して返されるオブジェクトなどです。 パスとファイル名、またはコマンドの一覧を渡すことはできません。

InputObject パラメーターを使用して、HistoryInfo オブジェクトのファイルを渡すことができます Add-History。 これを行うには、Export-Csv または Export-Clixml コマンドレットを使用して Get-History コマンドの結果をファイルにエクスポートし、Import-Csv または Import-Clixml コマンドレットを使用してファイルをインポートします。 その後、インポートされた HistoryInfo オブジェクトのファイルを、パイプラインまたは変数を介して Add-History に渡すことができます。 詳細については、例を参照してください。

Add-History コマンドレットに渡す HistoryInfo オブジェクトのファイルには、型情報、列見出し、および HistoryInfo オブジェクトのすべてのプロパティが含まれている必要があります。 オブジェクトを Add-Historyに渡す場合は、Export-Csv コマンドレットの NoTypeInformation パラメーターを使用しないでください。また、ファイル内の型情報、列見出し、フィールドは削除しないでください。

セッション履歴を変更するには、セッションを CSV または XML ファイルにエクスポートし、ファイルを変更してファイルをインポートし、Add-History を使用して現在のセッション履歴に追加します。