Invoke-History

从会话历史记录中运行命令。

语法

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

说明

Invoke-History cmdlet 从会话历史记录中运行命令。 可以将表示命令的对象从 Get-History 传递给 Invoke-History,或通过使用命令 ID 号标识当前历史记录中的命令。 若要查找命令的标识号,请使用 Get-History cmdlet。

示例

示例 1:运行历史记录中的最新命令

PS C:\> Invoke-History

此命令运行会话历史记录中的最后一个或最新命令。 可以将此命令缩写为 r,这是 Invoke-History 的别名。

示例 2:运行具有指定 ID 的命令

PS C:\> Invoke-History -Id 132

此命令运行会话历史记录中 ID 为 132 的命令。 由于 Id 参数的名称是可选的,因此可以将此命令缩写为: Invoke-History 132ihy 132r 132

示例 3:使用命令文本运行最新的命令

PS C:\> Invoke-History -ID get-pr

此命令运行会话历史记录中的最新的 Get-Process 命令。 为 Id 参数键入字符时, Invoke-History 将运行它找到的第一个与模式匹配的命令,从最新的命令开始。

示例 4:从历史记录运行一系列命令

PS C:\> 16..24 | ForEach {Invoke-History -Id $_ }

此命令运行命令 16 至 24。 由于只能列出一个 ID 值,因此该命令使用 ForEach-Object cmdlet 为每个 ID 值运行一次 Invoke-History 命令。

示例 5

PS C:\> Get-History -Id 255 -Count 7 | ForEach {Invoke-History -Id $_.Id}

此命令运行历史记录中以命令 255 结束的 7 个命令(通常是 249 到 255)。 它使用 Get-history cmdlet 检索命令。 由于只能列出一个 ID 值,因此该命令使用 ForEach-Object cmdlet 为每个 ID 值运行一次 Invoke-History 命令。

参数

-Confirm

提示你在运行 cmdlet 之前进行确认。

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

-Id

指定历史记录中命令的 ID。 你可以键入命令的 ID 号或命令的前几个字符。

如果键入字符,则 Invoke-History 首先与最新的命令匹配。 如果省略此参数, Invoke-History 将运行最后一个或最近的命令。 若要查找命令的 ID 号,请使用 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

可以通过管道将历史记录 ID 传递给此 cmdlet。

输出

None

此 cmdlet 不会生成任何输出,但输出可能由 Invoke-History 运行的命令生成。

备注

  • 会话历史记录是会话期间输入的命令以及 ID 的列表。 会话历史记录表示命令的执行顺序、状态以及开始和结束时间。 输入每个命令时,PowerShell 会将其添加到历史记录中,以便可以重复使用它。 有关会话历史记录的详细信息,请参阅 about_History

  • 还可以通过其内置别名 rihy来引用 Invoke-History 。 有关详细信息,请参阅 about_Aliases