Add-History
將專案附加至會話歷程記錄。
語法
Add-History
[[-InputObject] <PSObject[]>]
[-PassThru]
[<CommonParameters>]
Description
Cmdlet 會將 Add-History
專案新增至會話歷程記錄的結尾,也就是在目前會話期間輸入的命令清單。
工作階段歷程記錄是工作階段期間輸入的命令清單。 會話歷程記錄代表命令的執行順序、狀態和開始和結束時間。 當您輸入每個命令時,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
會格式化為腳本區塊,並以大括弧 ({}
),如 Cmdlet 的 ForEach-Object
Process 參數所要求。
範例 3:將歷程記錄中的命令新增至歷程記錄結尾
本範例會將歷程記錄中的前五個命令新增至歷程記錄清單的結尾。
Get-History -Id 5 -Count 5 | Add-History
Cmdlet 會 Get-History
取得結束於命令 5 的五個命令。 管線運算符會將它們傳遞至 Add-History
Cmdlet,以將它們附加至目前的歷程記錄。 Add-History
此命令不包含任何參數,但 PowerShell 會將透過管線傳遞的物件與 的 Add-History
InputObject 參數產生關聯。
範例 4:將.csv檔案中的命令新增至目前的歷程記錄
本範例會將 檔案中的 History.csv
命令新增至目前的會話歷程記錄。
$a = Import-Csv -Path C:\testing\history.csv
Add-History -InputObject $a -PassThru
Cmdlet 會 Import-Csv
匯入 檔案中的 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。 接著,Cmdlet 會將 Add-History
檔案中的命令新增至會話歷程記錄。
參數
-InputObject
指定要新增至歷程記錄的項目陣列,做為 HistoryInfo 物件新增至工作階段歷程記錄。
您可以使用此參數將 HistoryInfo 物件, 例如 、 Import-Clixml
或 Import-Csv
Cmdlet 所Get-History
傳回的物件提交至 Add-History
。
類型: | PSObject[] |
Position: | 0 |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-PassThru
指出此 Cmdlet 會針對每個記錄專案傳 回 HistoryInfo 物件。 根據預設,此 Cmdlet 不會產生任何輸出。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
輸入
您可以使用管線將 HistoryInfo 物件傳送至此 Cmdlet。
輸出
None
根據預設,此 Cmdlet 不會傳回任何輸出。
當您使用 PassThru 參數時,這個 Cmdlet 會 傳回 HistoryInfo 物件。
備註
會話歷程記錄是會話期間輸入的命令清單,以及標識符。 會話歷程記錄代表命令的執行順序、狀態和開始和結束時間。 當您輸入每個命令時,PowerShell 會將它新增至歷程記錄,以便重複使用它。 如需會話歷程記錄的詳細資訊,請參閱 about_History。
若要指定要新增至歷程記錄的命令,請使用 InputObject 參數。 此命令 Add-History
只 接受 HistoryInfo 物件,例如 Cmdlet 針對每個命令傳回的物件 Get-History
。 您無法將路徑和檔案名或命令清單傳遞。
您可以使用 InputObject 參數將 HistoryInfo 物件的檔案傳遞至 Add-History
。 若要這樣做,請使用 Export-Csv
或 Cmdlet 將命令的結果Get-History
匯出至檔案,然後使用 或 Export-Clixml
Import-Clixml
Cmdlet 匯入檔案Import-Csv
。 然後,您可以將匯入 的 HistoryInfo 物件的檔案傳遞至 Add-History
管線或變數中。 如需詳細資訊,請參閱 範例。
您傳遞給 Cmdlet 的 HistoryInfo 物件檔案必須包含 HistoryInfo 物件的類型資訊、數據行標題,以及 HistoryInfo 物件的所有屬性。Add-History
如果您想要將對象傳回 ,Add-History
請勿使用 Cmdlet 的 Export-Csv
NoTypeInformation 參數,也不會刪除檔案中的類型資訊、數據行標題或任何字段。
若要修改會話歷程記錄,請將會話匯出至 CSV 或 XML 檔案、修改檔案、匯入檔案,並使用 Add-History
將它附加至目前的會話歷程記錄。