Invoke-History
從會話歷程記錄執行命令。
語法
Invoke-History
[[-Id] <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Invoke-History Cmdlet 會從會話歷程記錄執行命令。 您可以將代表命令的物件從 Get-History 傳遞至 Invoke-History,或者您可以使用其標識符來識別目前歷程記錄中的命令。 若要尋找命令的標識碼,請使用 Get-History Cmdlet。
範例
範例 1:在歷程記錄中執行最新的命令
PS C:\> Invoke-History
此命令會在會話歷程記錄中執行最後一個或最新的命令。
您可以將此命令縮寫為 r
,Invoke-History別名。
範例 2:執行具有指定識別碼的命令
PS C:\> Invoke-History -Id 132
此命令會在標識碼為 132 的工作階段歷程記錄中執行 命令。
因為 識別子 參數的名稱是選擇性的,因此您可以縮寫此命令,如下所示:Invoke-History 132
、ihy 132
或 r 132
。
範例 3:使用命令文字執行最新的命令
PS C:\> Invoke-History -ID get-pr
此命令會在會話歷程記錄中執行最新的 Get-Process 命令。 當您輸入 標識碼 參數的字元時,Invoke-History 會執行第一個符合模式的命令,從最新的命令開始。
範例 4:從歷程記錄執行一連串命令
PS C:\> 16..24 | ForEach {Invoke-History -Id $_ }
此命令會執行命令 16 到 24。 因為您只能列出一個標識符值,因此命令會使用 ForEach-Object Cmdlet 針對每個標識符值執行 Invoke-History 命令一次。
範例 5
PS C:\> Get-History -Id 255 -Count 7 | ForEach {Invoke-History -Id $_.Id}
此命令會在歷程記錄中執行 7 個命令,其結尾為命令 255(通常是 249 到 255)。 它會使用 Get-History Cmdlet 來擷取命令。 因為您只能列出一個標識符值,因此命令會針對每個標識符值使用 ForEach-Object Cmdlet 執行 Invoke-History 命令一次。
參數
-Confirm
在執行 Cmdlet 之前,提示您進行確認。
類型: | SwitchParameter |
別名: | cf |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Id
指定歷程記錄中命令的識別碼。 您可以輸入命令的識別碼或命令的前幾個字元。
如果您輸入字元,Invoke-History 會先符合最新的命令。 如果您省略此參數,Invoke-History 執行最後一個或最新的命令。 若要尋找命令的標識碼,請使用 Get-History Cmdlet。
類型: | String |
Position: | 0 |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-WhatIf
顯示 Cmdlet 執行時會發生什麼事。 Cmdlet 未執行。
類型: | SwitchParameter |
別名: | wi |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
輸入
您可以使用管線將歷程記錄標識碼傳送至此 Cmdlet。
輸出
None
此 Cmdlet 不會產生任何輸出,但輸出可能會由 Invoke-History 執行的命令產生。
備註
會話歷程記錄是會話期間輸入的命令清單,以及標識符。 會話歷程記錄代表命令的執行順序、狀態和開始和結束時間。 當您輸入每個命令時,PowerShell 會將它新增至歷程記錄,以便重複使用它。 如需工作階段歷程記錄的詳細資訊,請參閱 about_History。
您也可以透過內建別名、
r
和ihy
來參考Invoke-History
。 如需詳細資訊,請參閱 about_Aliases。