如何在Windows PowerShell中使用命令历史记录

Windows PowerShell具有内置的命令历史记录功能,可以提供有关您运行的命令的详细信息。 与命令提示符一样,PowerShell只记住您当前会话的命令历史记录。

如何使用命令行缓冲区

PowerShell技术上有两种类型的命令历史。 首先,命令行缓冲区实际上是图形化PowerShell终端应用程序的一部分,而不是底层Windows PowerShell应用程序的一部分。 它提供了几个基本功能:

  • 向上箭头 :回忆您键入的上一个命令。 重复按键可以浏览您的命令历史记录。
  • 向下箭头 :回想一下您输入的下一个命令。 重复按键可以浏览您的命令历史记录。
  • F8 :搜索您的命令历史记录,获取与当前命令行中的文本相匹配的命令。 所以,如果你想搜索一个以“p”开头的命令,你可以在命令行中键入“p”,然后重复点击F8循环浏览历史上以“a”开头的命令。

默认情况下,缓冲区会记住您键入的最后50个命令。 要更改此选项,请右键单击PowerShell提示窗口的标题栏,选择“属性”,并在命令历史记录下更改“缓冲区大小”的值。

如何查看PowerShell历史记录

Windows PowerShell本身保留了您在当前PowerShell会话中键入的命令的历史记录。 您可以使用几个包含的cmdlet来查看和处理您的历史记录。

要查看您键入的命令的历史记录,请运行以下cmdlet:

 获取历史记录 

您可以通过将生成的输出传递给Select-String cmdlet并指定要搜索的文本来搜索历史记录。 将下面的cmdlet中的“Example”替换为要搜索的文本:

 获取历史| 选择字符串模式“示例” 

要查看显示每个命令的执行状态及其开始和结束时间的更详细的命令历史记录,请运行以下命令:

 获取历史| 格式列表 - 属性* 

默认情况下, Get-History cmdlet仅显示32个最近的历史记录条目。 如果要查看或搜索大量历史记录条目,请使用-Count选项指定PowerShell应显示的历史记录数,如下所示:

 获取历史记录-Count 1000

获取历史记录-Count 1000 | 选择字符串模式“示例”

获取历史记录-Count 1000 | 格式列表 - 属性* 

如何从你的历史运行命令

要从历史记录运行命令,请使用以下cmdlet,指定历史记录项的Id编号,如Get-History cmdlet所示:

 调用历史# 

要从历史回溯运行两个命令,请在同一行上使用“ Invoke-History两次,并以分号分隔。 例如,要快速运行您的历史记录中的第一个命令,那么第二个命令将运行:

 调用历史1;调用历史2 

如何清除您的PowerShell历史

要清除您键入的命令的历史记录,请运行以下cmdlet:

 清除历史记录 

请注意,命令行缓冲区与PowerShell历史记录是分开的。 所以,即使运行Clear-History ,您也可以继续按向上和向下箭头键滚动您输入的命令。 但是,如果您运行Get-History ,您将看到您的PowerShell历史记录实际上是空的。

PowerShell不记得会话之间的历史。 要擦除当前会话的两个命令历史记录,您只需关闭PowerShell窗口即可。

清除历史记录后,如果要清除PowerShell窗口,可以运行Clear命令:

 明确 

如何保存和导入PowerShell历史记录

如果要保存当前会话的PowerShell命令历史记录,以便稍后参考,您可以这样做。

 获取历史|  Export-Clixml -Path c:\ users \ name \ desktop \ commands.xml 

这将导出您的命令历史记录作为详细的XML文件,其中包含每个命令运行时的命令“StartExecutionTime”和“EndExecutionTime”值,以及完成所需的时间。

将PowerShell历史记录导出到这样一个XML文件后,您(或其他任何您发送XML文件的文件)可以使用Add-History cmdlet将其导入到另一个PowerShell会话:

 添加历史记录-InputObject(Import-Clixml -Path C:\ users \ name \ desktop \ commands.xml) 

如果在导入这样的XML文件之后运行Get-History cmdlet,您将看到XML文件中的命令被导入到当前PowerShell会话的历史记录中。

赞 (1)
分享到:更多 ()