附加項目到工作階段歷程記錄。

語法

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

描述

Add-History Cmdlet 會在工作階段歷程記錄的結尾新增項目,而工作階段歷程記錄就是在目前工作階段期間所輸入命令的清單。

您可以使用 Get-History Cmdlet 取得這些命令並將它們傳遞到 Add-History,也可以將這些命令匯出到 CSV 或 XML 檔案、匯入這些命令,然後將匯入的檔案傳遞到 Add-History。您可以使用這個 Cmdlet 將特定命令新增到歷程記錄中,或是建立單一個歷程記錄檔案來包含一個以上工作階段中的命令。

參數

-InputObject <PSObject[]>

將指定的 HistoryInfo 物件新增至工作階段歷程記錄。使用此參數可將 Get-History、Import-Clixml 或 Import-CSV 傳回的 HistoryInfo 物件提交至 Add-History。

必要?

false

位置?

1

預設值

接受管線輸入?

true (ByValue)

接受萬用字元?

false

-PassThru

針對每個歷程記錄項目傳回一個歷程記錄物件。根據預設,此 Cmdlet 不會產生任何輸出。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

<CommonParameters>

這個 Cmdlet 支援一般參數:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。如需詳細資訊,請參閱 about_Commonparameters.

輸入和輸出

輸入型別是可經由管道輸出至 Cmdlet 的物件型別。傳回型別則是 Cmdlet 所傳回的物件型別。

輸入

Microsoft.PowerShell.Commands.HistoryInfo

您可經由管道將 HistoryInfo 物件輸出至 Add-History。

輸出

None 或 Microsoft.PowerShell.Commands.HistoryInfo

當您使用 PassThru 參數時,Add-History 就會產生 HistoryInfo 物件。否則,這個 Cmdlet 不會產生任何輸出。

附註

工作階段歷程記錄是在工作階段期間所輸入命令的清單以及識別碼。工作階段歷程記錄代表執行的順序、狀態,以及命令的開始和結束時間。每當您輸入一個命令,Windows PowerShell 便會將其新增至歷程記錄,讓您可以重複使用。如需工作階段歷程記錄的詳細資訊,請參閱 about_History。

若要指定要新增到歷程記錄的命令,請使用 InputObject 參數。Add-History 命令只接受 HistoryInfo 物件,例如 Get-History 為每個命令產生的物件。您不能將路徑、檔案名稱或是命令清單傳遞到這個命令。

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

傳遞到 Add-History 的 HistoryInfo 物件檔案必須包含類型資訊、欄標題,以及這些 HistoryInfo 物件的所有屬性。若您要將這些物件傳回 Add-History,請不要使用 Export-CSV 的 NoTypeInformation 參數,也不要刪除檔案中的類型資訊、欄標題或任何欄位。

若要編輯工作階段歷程記錄,請依序將工作階段匯出到 CSV 或 XML 檔案、編輯此檔案、匯入此檔案,然後使用 Add-History 將它附加到目前的工作階段歷程記錄。

範例 1

C:\PS>get-history | export-csv c:\testing\history.csv

C:\PS>import-csv history.csv | add-history

描述
-----------
這些命令會將某個 Windows PowerShell 工作階段期間所輸入的命令新增到不同 Windows PowerShell 工作階段的歷程記錄。第一個命令會取得代表歷程記錄中命令的物件,然後將它們匯出到 History.csv 檔案。第二個命令則是從另一個工作階段的命令列中輸入。它會使用 Import-Csv Cmdlet 匯入此 History.csv 檔案中的物件。管線運算子會將這些物件傳遞到 Add-History Cmdlet,並由後者將代表 History.csv 檔案中命令的物件新增到目前的工作階段歷程記錄。






範例 2

C:\PS>import-clixml c:\temp\history.xml | add-history -passthru | foreach-object {invoke-history}

描述
-----------
這個命令會匯入 History.xml 檔案中的命令、將這些命令新增至目前的工作階段歷程記錄,接著執行合併歷程記錄中的命令。

第一個命令會使用 Import-Clixml 命令,匯入已匯出到 History.xml 檔案的命令歷程記錄。管線運算子 (|) 會將這些命令傳遞到 Add-History 參數,並由後者將命令新增到目前的工作階段歷程記錄。PassThru 參數會沿著管線向下傳遞代表所新增之命令的物件。

接著,這個命令會使用 ForEach-Object Cmdlet 將 Invoke-History 命令套用至合併歷程記錄中的每個命令。Invoke-History 命令會格式化成指令碼區塊 (以大括號 ({}) 括住),因為即使只套用一個命令,ForEach-Object 也需要指令碼區塊。






範例 3

C:\PS>get-history -id 5 -count 5 | add-history

描述
-----------
這個命令會將歷程記錄中的前 5 個命令新增到歷程記錄清單的結尾。它會使用 Get-History Cmdlet 取得到命令 5 為止的五個命令。管線運算子 (|) 會將這些命令傳遞到 Add-History Cmdlet,並由此 Cmdlet 將它們附加至目前的歷程記錄。雖然 Add-History 命令並不包含任何參數,不過 Windows PowerShell 會讓透過管線傳遞的物件與 InputObject 參數產生關聯。






範例 4

C:\PS>$a = import-csv c:\testing\history.csv

C:\PS>add-history -inputobject $a -passthru

描述
-----------
這些命令會將 History.csv 檔案中的命令新增到目前的工作階段歷程記錄。第一個命令會使用 Import-Csv Cmdlet 匯入 History.csv 檔案中的命令,然後將其內容存放到變數 $a。第二個命令會使用 Add-History Cmdlet,將 History.csv 中的命令新增至目前的工作階段歷程記錄。它會使用 InputObject 參數指定 $a 變數,並使用 PassThru 參數產生要顯示在命令列中的物件。如果沒有使用 PassThru 參數,Add-History 就不會產生任何要顯示的輸出。






範例 5

C:\PS>add-history -inputobject (import-clixml c:\temp\history01.xml)

描述
-----------
這個命令會將 History01.xml 檔案中的命令新增到目前的工作階段歷程記錄。它會使用 InputObject 參數將括號中命令的結果傳遞到 Add-History。括號中的命令 (優先執行) 會將 History01.xml 檔案匯入 Windows PowerShell。然後,Add-History 會將檔案中的命令新增至工作階段歷程記錄。






請參閱




目錄