Invoke-History
从会话历史记录中运行命令。
语法
Invoke-History
[[-Id] <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
说明
Invoke-History
cmdlet 从会话历史记录中运行命令。 可以将表示命令的对象从 Get-History 传递给 Invoke-History
,或通过使用命令 Id 号标识当前历史记录中的命令。 若要查找命令的标识号,请使用 Get-History
cmdlet。
会话历史记录独立于 PSReadLine 模块维护的历史记录进行管理。 这两个历史记录在加载 PSReadLine 的会话中都可用。 此 cmdlet 仅适用于会话历史记录。 有关详细信息,请参阅 about_PSReadLine。
示例
示例 1:在历史记录中运行最新的命令
此示例运行会话历史记录中的最后一个或最新的命令。 可将此命令缩写为 r
,Invoke-History
的别名。
Invoke-History
示例 2:运行具有指定 ID 的命令
此示例运行会话历史记录中 Id 为 132 的命令。 由于 Id 参数的名称为可选项,因此可将此命令缩写为 Invoke-History 132
、ihy 132
或 r 132
。
Invoke-History -Id 132
示例 3:通过使用命令文本运行最新的命令
此示例运行会话历史记录中的最新的 Get-Process
命令。 键入 Id 参数的字符时,Invoke-History
将运行它发现的与该模式匹配的第一个命令(从最新命令开始)。
Invoke-History -Id get-pr
注意
模式匹配不区分大小写,但模式与行的开头匹配。
示例 4:从历史记录运行一系列命令
此示例运行命令 16 至 24。 由于只能列出一个 Id 值,因此该命令使用 ForEach-Object
cmdlet 为每个 Id 值运行一次 Invoke-History
命令。
16..24 | ForEach-Object {Invoke-History -Id $_ }
示例 5
此示例运行历史记录中以命令 255 结束的七个命令(249 到 255)。 它使用 Get-History
cmdlet 检索命令。 由于只能列出一个 Id 值,因此该命令使用 ForEach-Object
cmdlet 为每个 Id 值运行一次 Invoke-History
命令。
Get-History -Id 255 -Count 7 | ForEach-Object {Invoke-History -Id $_.Id}
参数
-Confirm
提示你在运行 cmdlet 之前进行确认。
类型: | SwitchParameter |
别名: | cf |
Position: | Named |
默认值: | False |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Id
指定历史记录中命令的 Id。 你可以键入命令的 Id 号或命令的前几个字符。
如果键入字符,则 Invoke-History
首先与最新命令匹配。 如果省略此参数,则 Invoke-History
将运行最后一个或最新的命令。 若要查找命令的 Id 号,请使用 Get-History
cmdlet。
类型: | String |
Position: | 0 |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-WhatIf
显示运行该 cmdlet 时会发生什么情况。 cmdlet 未运行。
类型: | SwitchParameter |
别名: | wi |
Position: | Named |
默认值: | False |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
输入
可以通过管道将历史记录 Id 传递给此 cmdlet。
输出
None
此 cmdlet 不返回其自己的输出,但它运行的命令可能会返回自己的输出。
备注
Windows PowerShell 包含 Invoke-History
的以下别名:
ihy
r
会话历史记录是在会话期间输入的命令的列表。 会话历史记录表示命令的执行顺序、状态以及开始和结束时间。 当你输入每个命令时,PowerShell 会将其添加到历史记录,以便对其进行重复使用。 有关会话历史记录的详细信息,请参阅 about_History。