Add-History

向会话历史记录附加条目。

语法

Add-History
   [[-InputObject] <PSObject[]>]
   [-Passthru]
   [<CommonParameters>]

说明

cmdlet Add-History 将条目添加到会话历史记录的末尾,即在当前会话期间输入的命令列表。 可以使用 Get-History cmdlet 获取命令并将其传递给 Add-History,也可以将命令导出到 CSV 或 XML 文件,然后导入命令,并将导入的文件传递给 Add-History。 可以使用此 cmdlet 向历史记录添加特定命令,或创建单个历史记录文件以保存来自多个会话的命令。

示例

示例 1:将命令添加到不同会话的历史记录

# Get objects representing the commands in the history and exports them to the History.csv file.
Get-History | Export-Csv c:\testing\history.csv
# Use the `Import-Csv` cmdlet to import the objects in the History.csv file.
Import-Csv history.csv | Add-History

这些命令将在一个 Windows PowerShell 会话中键入的命令添加到另一个 Windows PowerShell 会话的历史记录。 第二个命令是在另一个会话的命令行中键入的。

管道运算符 | 将对象传递给 Add-History cmdlet,该 cmdlet 会将表示 History.csv 文件中命令的对象添加到当前会话历史记录中。

示例 2:导入和运行命令

Import-Clixml c:\temp\history.xml | Add-History -Passthru | ForEach-Object -Process {Invoke-History}

此命令从 History.xml 文件导入命令,将它们添加到当前会话历史记录,然后运行合并历史记录中的命令。

cmdlet Import-Clixml 导入已导出到 History.xml 文件的命令历史记录。

管道运算符将命令传递给 Add-History cmdlet,后者会将命令添加到当前会话历史记录中。

PassThru 参数在管道中传递表示添加的命令的对象。

ForEach-Object cmdlet 将 Invoke-History 命令应用于组合历史记录中的每个命令。

按照 cmdlet 的 Process 参数的要求,命令Invoke-History的格式设置为脚本块,括在大括号中ForEach-Object

示例 3:将历史记录中的命令添加到历史记录末尾

Get-History -Id 5 -Count 5 | Add-History

此命令将历史记录中前五个命令添加到历史记录列表的末尾。 它使用 Get-History cmdlet 获取以命令 5 结尾的五个命令。 管道运算符将它们传递给 Add-History cmdlet,后者会将它们追加到当前历史记录中。

命令Add-History不包含任何参数,但Windows PowerShell将通过管道传递的对象与 的 Add-HistoryInputObject 参数相关联。

示例 4:将 .csv 文件中的命令添加到当前历史记录

$a = Import-Csv c:\testing\history.csv
Add-History -InputObject $a -PassThru

这些命令会将 History.csv 文件中的命令添加到当前会话历史记录。

第一个命令使用 Import-Csv cmdlet 将命令导入 History.csv 文件中,并将其内容存储在变量 $a中。

第二个命令使用 Add-History cmdlet 将 History.csv 中的命令添加到当前会话历史记录。

它使用 InputObject 参数来指定 $a 变量,并使用 PassThru 参数生成要在命令行中显示的对象。 如果没有 PassThru 参数,cmdlet Add-History 不会生成任何输出。

示例 5:将 .xml 文件中的命令添加到当前历史记录

Add-History -InputObject (Import-Clixml c:\temp\history01.xml)

此命令将 History01.xml 文件中的命令添加到当前会话历史记录。 它使用 InputObject 参数将括号中的命令结果传递给 Add-History cmdlet。

先执行括号中的命令,该命令将 History01.xml 文件导入到 Windows PowerShell 中。 然后,该 Add-History cmdlet 将文件中的命令添加到会话历史记录中。

参数

-InputObject

指定要作为 HistoryInfo 对象添加到会话历史记录的条目数组。 可以使用此参数将 HistoryInfo 对象(例如 、 Import-ClixmlImport-Csv cmdlet 返回Get-History的对象)提交到 Add-History

Type:PSObject[]
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Passthru

指示此 cmdlet 为每个历史记录项返回一个历史记录对象。 默认情况下,此 cmdlet 将不产生任何输出。

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

输入

HistoryInfo

可以通过管道将 HistoryInfo 对象传递给此 cmdlet。

输出

None or Microsoft.PowerShell.Commands.HistoryInfo

如果指定 PassThru 参数,此 cmdlet 将返回 HistoryInfo 对象。 否则,此 cmdlet 将不生成任何输出。

备注

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

  • 若要指定要添加到历史记录中的命令,请使用 InputObject 参数。 该 Add-History 命令仅接受 HistoryInfo 对象,例如 cmdlet 为每个命令返回的对象 Get-History 。 不能向其传递路径和文件名,也不能传递命令列表。

  • 可以使用 InputObject 参数将 HistoryInfo 对象的文件传递给 Add-History。 为此,请使用 Export-Csv 或 cmdlet 将命令的结果Get-History导出到文件,然后使用 或 Import-Clixml cmdlet 导入文件Import-CsvExport-Clixml。 然后,可以通过管道或变量将导入的 HistoryInfo 对象的 Add-History 文件传递给 。 有关详细信息,请参阅示例。

  • 传递给 Add-History cmdlet 的 HistoryInfo 对象的文件必须包含类型信息、列标题和 HistoryInfo 对象的所有属性。 如果打算将对象传递回 Add-History,请不要使用 cmdlet 的 Export-CsvNoTypeInformation 参数,也不要删除文件中的类型信息、列标题或任何字段。 若要修改会话历史记录,请将会话导出到 CSV 或 XML 文件,修改文件,导入文件,然后使用 Add-History 将其追加到当前会话历史记录。