Add-History
向会话历史记录附加条目。
语法
Default (默认值)
Add-History
[[-InputObject] <PSObject[]>]
[-Passthru]
[<CommonParameters>]
说明
Add-History cmdlet 将条目添加到会话历史记录的末尾,即当前会话期间输入的命令列表。
会话历史记录是会话期间输入的命令的列表。 会话历史记录表示执行顺序、状态以及命令的开始和结束时间。 输入每个命令时,PowerShell 会将其添加到历史记录中,以便重复使用它。 有关会话历史记录的详细信息,请参阅 about_History。
会话历史记录独立于 PSReadLine 模块维护的历史记录进行管理。 这两个历史记录在加载 PSReadLine 的会话中都可用。 此 cmdlet 仅适用于会话历史记录。 有关详细信息,请参阅 about_PSReadLine。
可以使用 Get-History cmdlet 获取命令并将其传递给 Add-History,也可以将命令导出到 CSV 或 XML 文件,然后导入命令,并将导入的文件传递给 Add-History。 可以使用此 cmdlet 将特定命令添加到历史记录,或创建包含多个会话中的命令的单个历史记录文件。
示例
示例 1:将命令添加到不同会话的历史记录
此示例将一个 PowerShell 会话中键入的命令添加到其他 PowerShell 会话的历史记录中。
Get-History | Export-Csv -Path C:\testing\history.csv -IncludeTypeInformation
Import-Csv -Path C:\testing\history.csv | Add-History
第一个命令获取表示历史记录中的命令的对象,并将其导出到 History.csv 文件中。
第二个命令在不同的会话的命令行中键入。 它使用 Import-Csv cmdlet 导入 History.csv 文件中的对象。 管道运算符(|)将对象传递给 Add-History cmdlet,该 cmdlet 会将表示 History.csv 文件中命令的对象添加到当前会话历史记录中。
示例 2:导入和运行命令
此示例从 History.xml 文件导入命令,将其添加到当前会话历史记录,然后在组合历史记录中运行命令。
Import-Clixml -Path C:\temp\history.xml | Add-History -PassThru | ForEach-Object -Process {Invoke-History}
第一个命令使用 Import-Clixml cmdlet 导入导出到 History.xml 文件的命令历史记录。 管道运算符将命令传递给 Add-History cmdlet,该 cmdlet 会将命令添加到当前会话历史记录。
PassThru 参数将表示已添加命令的对象传递到管道中。
然后,该命令使用 ForEach-Object cmdlet 将 Invoke-History 命令应用于合并历史记录中的每个命令。
Invoke-History 命令的格式设置为脚本块,由 {} cmdlet 的 Process 参数要求括在大括号(ForEach-Object)。
示例 3:将历史记录中的命令添加到历史记录末尾
本示例将历史记录中的前五个命令添加到历史记录列表的末尾。
Get-History -Id 5 -Count 5 | Add-History
Get-History cmdlet 获取包含最后一个命令 5 在内的五个命令。 管道操作者将它们传递给 Add-History cmdlet,该 cmdlet 将它们追加到当前历史记录中。
Add-History 命令不包含任何参数,但 PowerShell 会将通过管道传递的对象与 Add-History 参数相关联。
示例 4:将 .csv 文件中的命令添加到当前历史记录
本示例将 History.csv 文件中的命令添加到当前会话历史记录中。
$a = Import-Csv -Path C:\testing\history.csv
Add-History -InputObject $a -PassThru
Import-Csv cmdlet 导入 History.csv 文件中的命令,并将其内容存储在变量 $a中。
第二个命令使用 Add-History cmdlet 将 History.csv 中的命令添加到当前会话历史记录。 它使用 InputObject 参数来指定 $a 变量,并使用 PassThru 参数生成用于在命令行中显示的对象。 如果没有 PassThru 参数,Add-History cmdlet 不会生成任何输出。
示例 5:将 .xml 文件中的命令添加到当前历史记录
本示例将 history.xml 文件中的命令添加到当前会话历史记录中。
Add-History -InputObject (Import-Clixml -Path C:\temp\history.xml)
InputObject 参数将括号中的命令结果传递给 Add-History cmdlet。 首先执行的括号中的命令会将 history.xml 文件导入 PowerShell。 然后,Add-History cmdlet 将文件中的命令添加到会话历史记录中。
参数
-InputObject
指定要作为 HistoryInfo 对象添加到会话历史记录的条目数组。
可以使用此参数将 HistoryInfo 对象(例如 Get-History、Import-Clixml或 Import-Csv cmdlet 返回的对象)提交到 Add-History。
参数属性
| 类型: | PSObject[] |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | 0 |
| 必需: | False |
| 来自管道的值: | True |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-Passthru
指出此 cmdlet 为每个历史记录条目返回 HistoryInfo 对象。 默认情况下,此 cmdlet 不生成任何输出。
参数属性
| 类型: | SwitchParameter |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
CommonParameters
此 cmdlet 支持通用参数:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 有关详细信息,请参阅 about_CommonParameters。
输入
HistoryInfo
可以通过管道将 HistoryInfo 对象传递给此 cmdlet。
输出
None
默认情况下,此 cmdlet 不返回任何输出。
HistoryInfo
使用 PassThru 参数时,此 cmdlet 将返回 HistoryInfo 对象。
备注
会话历史记录是会话期间与 ID 一起输入的命令的列表。 会话历史记录表示执行顺序、状态以及命令的开始和结束时间。 输入每个命令时,PowerShell 会将其添加到历史记录中,以便重复使用它。 有关会话历史记录的详细信息,请参阅 about_History。
若要指定要添加到历史记录的命令,请使用 InputObject 参数。
Add-History 命令仅接受 HistoryInfo 对象,例如由 Get-History cmdlet 为每个命令返回的对象。 不能向其传递路径和文件名或命令列表。
可以使用 InputObject 参数将 HistoryInfo 对象的文件传递给 Add-History。 为此,请使用 Get-History 或 Export-Csv cmdlet 将 Export-Clixml 命令的结果导出到文件,然后使用 Import-Csv 或 Import-Clixml cmdlet 导入文件。 然后,可以将导入的 HistoryInfo 对象的文件通过管道或变量传递到 Add-History。 有关详细信息,请参阅示例。
传递给 cmdlet 的 Add-History 对象的文件必须包括类型信息、列标题以及 HistoryInfo 对象的所有属性。 如果打算将对象传递回 Add-History,请不要使用 cmdlet 的 Export-Csv 参数,也不会删除文件中的类型信息、列标题或任何字段。
若要修改会话历史记录,请将会话导出到 CSV 或 XML 文件、修改文件、导入文件,并使用 Add-History 将其追加到当前会话历史记录。