Invoke-History

從會話歷程記錄執行命令。

Syntax

Invoke-History
      [[-Id] <String>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Description

Cmdlet Invoke-History 會從會話歷程記錄執行命令。 您可以將代表 Get-History 命令的物件傳遞至 Invoke-History,或使用其識別碼來識別目前歷程記錄中的命令。 若要尋找命令的標識碼,請使用 Get-History Cmdlet。

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

範例

範例 1:在歷程記錄中執行最新的命令

此範例會在會話歷程記錄中執行最後一個或最近一個命令。 您可以將此命令縮寫為 r,這是 的 Invoke-History別名。

Invoke-History

範例 2:執行具有指定識別碼的命令

此範例會在標識碼為 132 的工作階段歷程記錄中執行 命令。 由於Id參數的名稱是選擇性的,因此您可以縮寫此命令,如下所示:Invoke-History 132ihy 132r 132

Invoke-History -Id 132

範例 3:使用命令文字執行最新的命令

此範例會在會話歷程記錄中執行最新的 Get-Process 命令。 當您輸入 Id 參數的字元時,Invoke-History請執行它發現符合模式的第一個命令,從最新的命令開始。

Invoke-History -Id get-pr

注意

模式比對不區分大小寫,但模式符合行的開頭。

範例 4:從歷程記錄執行一連串命令

此範例會執行命令 16 到 24。 因為您只能列出一個 Id 值,因此命令會使用 ForEach-Object Cmdlet 針對 Invoke-History 每個 Id 值執行命令一次。

16..24 | ForEach-Object {Invoke-History -Id $_ }

範例 5

此範例會在歷程記錄中執行以命令 255 (249 到 255) 結尾的七個命令。 它會使用 Get-History Cmdlet 來擷取命令。 因為您只能列出一個 Id 值,因此命令會針對每個 Id 值使用 ForEach-Object Cmdlet 執行Invoke-History命令一次。

Get-History -Id 255 -Count 7 | ForEach-Object {Invoke-History -Id $_.Id}

參數

-Confirm

執行 Cmdlet 之前先提示您確認。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Id

指定歷程記錄中命令的識別碼。 您可以輸入命令的識別碼或命令的前幾個字元。

如果您輸入字元, Invoke-History 請先符合最新的命令。 如果您省略此參數,請 Invoke-History 執行最後一個或最新的命令。 若要尋找命令的標識碼,請使用 Get-History Cmdlet。

Type:String
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

顯示執行 Cmdlet 後會發生的情況。 未執行 Cmdlet。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

輸入

String

您可以使用管線將歷程記錄 標識碼 傳送至此 Cmdlet。

輸出

None

此 Cmdlet 不會傳回自己的輸出,但其執行的命令可能會傳回自己的輸出。

備註

PowerShell 包含下列的 Invoke-History別名:

  • 所有平臺:
    • ihy
    • r

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