共用方式為


Add-History

將條目添加至會話歷程記錄。

語法

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

Description

Add-History Cmdlet 會將條目新增至工作階段歷史的末端,也就是在當前工作階段期間輸入的命令清單。

工作階段歷程記錄是工作階段期間輸入的命令清單。 會話歷程記錄代表命令的執行順序、狀態和開始和結束時間。 當您輸入每個命令時,PowerShell 會將它新增至歷程記錄,以便重複使用它。 如需了解有關工作階段歷程更多的詳細資料,請參閱 about_History

會話歷程記錄會與 PSReadLine 模組所維護的歷程記錄分開管理。 在載入 PSReadLine 的工作階段中可使用這兩個歷程記錄。 此 Cmdlet 僅適用於會話歷程記錄。 如需詳細資訊,請參閱 about_PSReadLine

您可以使用 Get-History Cmdlet 來取得命令,並將其傳遞至 Add-History,或者您可以將命令匯出至 CSV 或 XML 檔案,然後匯入命令,然後將匯入的檔案傳遞至 Add-History。 您可以使用此 Cmdlet 將特定命令新增至歷程記錄,或建立包含來自多個會話之命令的單一歷程記錄檔。

範例

範例 1:將命令新增至不同會話的歷程記錄

此範例會將一個 PowerShell 工作階段中輸入的命令新增至不同 PowerShell 會話的歷程記錄。

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

第一個命令會取得物件,代表歷程記錄中的命令,並將其匯出至 History.csv 檔案。

第二個命令是在不同會話的命令行輸入。 它會使用 Import-Csv Cmdlet 匯入 History.csv 檔案中的物件。 管線運算符 (|) 會將對象傳遞至 Add-History Cmdlet,此 Cmdlet 會將代表 History.csv 檔案中命令的物件新增至目前的會話歷程記錄。

範例 2:匯入和執行命令

此範例會從 History.xml 檔案匯入命令、將它們新增至目前的會話歷程記錄,然後在合併的歷程記錄中執行命令。

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

第一個命令會使用 Import-Clixml Cmdlet 匯入匯出至 History.xml 檔案的命令歷程記錄。 管線運算符將命令傳遞給 Add-History Cmdlet,該 Cmdlet 會將命令新增至當前的會話歷史記錄。 PassThru 參數會在管線中傳遞代表新增命令的物件。

命令接著會使用 ForEach-Object Cmdlet,將 Invoke-History 命令套用至合併歷程記錄中的每個命令。 Invoke-History 命令會格式化為腳本區塊,並以大括弧({})括住,這是因為 ForEach-Object 命令列工具的 處理程序 參數的要求。

範例 3:將歷程記錄中的命令新增至歷程記錄結尾

本範例會將歷程記錄中的前五個命令新增至歷程記錄清單的結尾。

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

Get-History Cmdlet 會取得結尾為命令5的五個指令。 管線操作員會將它們傳遞給 Add-History Cmdlet,以將它們附加至目前的歷程記錄。 Add-History 命令不包含任何參數,但 PowerShell 會將透過管線傳遞的物件與 Add-HistoryInputObject 參數產生關聯。

範例 4:將 .csv 檔案中的命令新增至目前的歷程記錄

本範例會將 History.csv 檔案中的命令新增至目前的會話歷程記錄。

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

Import-Csv Cmdlet 會匯入 History.csv 檔案中的命令,並將其內容儲存在變數 $a中。

第二個命令會使用 Add-History Cmdlet,將命令從 History.csv 新增至目前的會話歷程記錄。 它會使用 InputObject 參數來指定 $a 變數和 PassThru 參數,以產生要顯示在命令行上的物件。 如果沒有 PassThru 參數,Add-History Cmdlet 不會產生任何輸出。

範例 5:將 .xml 檔案中的命令新增至目前的歷程記錄

本範例會將 history.xml 檔案中的命令新增至目前的會話歷程記錄。

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

InputObject 參數會將命令的結果以括號傳遞至 Add-History Cmdlet。 先執行括弧中的 命令會將 history.xml 檔案匯入 PowerShell。 Add-History Cmdlet 接著會將檔案中的命令新增至會話歷程記錄。

參數

-InputObject

指定一組要新增至歷程記錄的項目,作為 HistoryInfo 物件添加到會話歷程記錄中。 您可以使用此參數來提交 HistoryInfo 物件,例如由 Get-HistoryImport-ClixmlImport-Csv cmdlet 所傳回的物件,給 Add-History

類型:PSObject[]
Position:0
預設值:None
必要:False
接受管線輸入:True
接受萬用字元:False

-PassThru

表示此 cmdlet 會針對每項歷史記錄傳回 HistoryInfo 物件。 根據預設,此 Cmdlet 不會產生任何輸出。

類型:SwitchParameter
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

輸入

HistoryInfo

您可以使用管線將 HistoryInfo 物件傳送至此 Cmdlet。

輸出

None

根據預設,此 Cmdlet 不會傳回任何輸出。

HistoryInfo

當您使用 PassThru 參數時,這個 Cmdlet 會傳回 HistoryInfo 物件。

備註

會話歷程記錄是會話期間輸入的命令清單,以及標識符。 會話歷程記錄代表命令的執行順序、狀態和開始和結束時間。 當您輸入每個命令時,PowerShell 會將它新增至歷程記錄,以便重複使用它。 如需有關會談歷程記錄的詳細資訊,請參閱 about_History

若要指定要新增至歷程記錄的命令,請使用 InputObject 參數。 Add-History 命令只接受 HistoryInfo 物件,例如 Get-History Cmdlet 針對每個命令傳回的物件。 您無法將路徑和檔案名或命令清單傳遞。

您可以使用 InputObject 參數,將 HistoryInfo 物件的檔案傳遞至 Add-History。 若要這樣做,請使用 Export-CsvExport-Clixml Cmdlet 將 Get-History 命令的結果匯出至檔案,然後使用 Import-CsvImport-Clixml Cmdlet 匯入檔案。 然後,您可以將匯入 HistoryInfo 的檔案傳遞 物件,以透過管線或變數 Add-History。 如需詳細資訊,請參閱範例。

HistoryInfo 的檔案 傳遞至 Add-History Cmdlet 的對象必須包含類型資訊、數據行標題,以及 HistoryInfo 物件的所有屬性。 如果您想要將對象傳回 Add-History,請勿使用 Export-Csv Cmdlet 的 NoTypeInformation 參數,也不會刪除檔案中的類型資訊、數據行標題或任何字段。

若要修改會話歷程記錄,請將會話導出至 CSV 或 XML 檔案、修改檔案、匯入檔案,並使用 Add-History 將它附加至目前的工作階段歷程記錄。