Clear-History

从 PowerShell 会话命令历史记录中删除条目。

语法

Clear-History
     [[-Id] <int[]>]
     [[-Count] <int>]
     [-Newest]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Clear-History
     [[-Count] <int>]
     [-CommandLine <string[]>]
     [-Newest]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]

说明

Clear-History 从 PowerShell 会话中删除命令历史记录。 每个 PowerShell 会话都有自己的命令历史记录。 若要显示命令历史记录,请使用 Get-History cmdlet。

默认情况下,Clear-History 从 PowerShell 会话中删除整个命令历史记录。 可以将参数与 Clear-History 一起使用,以删除所选命令。

Clear-History 未清除 PSReadLine 命令历史记录文件。 PSReadLine 模块存储一个历史记录文件,其中包含来自每个 PowerShell 会话的每个 PowerShell 命令。 在 PowerShell 提示符下,使用键盘上的向上和向下箭头滚动浏览命令历史记录。 若要显示命令历史记录的 PSReadLine 配置,请使用 Get-PSReadLineOptionPSReadLine PowerShell 5.0 及更高版本随附。 有关详细信息,请参阅 about_PSReadLine

示例

示例 1:从 PowerShell 会话中删除命令历史记录

此命令从 PowerShell 会话的历史记录中删除所有命令。

Get-History

Id CommandLine
  -- -----------
   1 Set-Location .\Test
   2 Update-Help
   3 Set-Location C:\Test\Logs
   4 Get-Location

Clear-History
Get-History

Id CommandLine
  -- -----------
   5 Clear-History

Get-History cmdlet 显示 PowerShell 会话的历史记录。 Clear-History 删除整个命令历史记录。 Get-History 显示更新的命令历史记录,并确认删除了以前的历史记录。

示例 2:删除最新的命令

此命令使用 计数最新 参数从 PowerShell 会话的历史记录中删除最新的命令。

Get-History

Id CommandLine
  -- -----------
   1 Set-Location C:\Test\
   2 Get-Command Clear-History
   3 Get-Command Clear-History -Syntax
   4 Get-Command Clear-History -ShowCommandInfo
   5 Get-Help Get-Alias
   6 Get-Command Get-ChildItem -Syntax
   7 Get-Help Clear-History
   8 Set-Location C:\Test\Logs
   9 Get-Help Get-Variable
  10 Get-Help Get-ChildItem

Clear-History -Count 5 -Newest
Get-History

Id CommandLine
  -- -----------
   1 Set-Location C:\Test\
   2 Get-Command Clear-History
   3 Get-Command Clear-History -Syntax
   4 Get-Command Clear-History -ShowCommandInfo
   5 Get-Help Get-Alias
  11 Clear-History -Count 5 -Newest

Get-History cmdlet 显示 PowerShell 会话的历史记录。 Clear-History 用于删除命令历史记录。 Count 参数指定要删除的命令数,包括指定的 ID。最新 参数 指定从历史记录中清除最新的命令。 Get-History 显示更新的命令历史记录,并确认删除了五个最新命令,Id 6 - Id 10

示例 3:删除与特定条件匹配的命令

此命令将删除与 CommandLine 参数定义的特定条件匹配的命令。

Get-History

Id CommandLine
  -- -----------
   1 Set-Location C:\Test\
   2 Get-Command Clear-History
   3 Get-Command Clear-History -Syntax
   4 Get-Command Clear-History -ShowCommandInfo
   5 Get-Help Get-Alias
   6 Get-Command Get-ChildItem -Syntax
   7 Get-Help Clear-History

Clear-History -CommandLine *Help*, *Syntax
Get-History

Id CommandLine
  -- -----------
   1 Set-Location C:\Test\
   2 Get-Command Clear-History
   4 Get-Command Clear-History -ShowCommandInfo
   8 Clear-History -CommandLine *Help*, *Syntax

Get-History cmdlet 显示 PowerShell 会话的历史记录。 Clear-History 删除命令历史记录。 CommandLine 参数指定包含 帮助 或以 语法结尾的命令。 Get-History 显示更新的命令历史记录,并确认命令 ID 3Id 5Id 6,以及删除了 ID 7

示例 4:按 ID 号删除命令

此命令使用 Id删除特定历史记录项。若要删除多个命令,请提交以逗号分隔的 ID 列表 数字。

Get-History

Id CommandLine
  -- -----------
   1 Set-Location C:\Test\
   2 Get-History
   3 Get-Help Get-Alias
   4 Get-Command Clear-History
   5 Get-Command Clear-History -Syntax
   6 Get-Command Clear-History -ShowCommandInfo

Clear-History -Id 3, 5
Get-History

Id CommandLine
  -- -----------
   1 Set-Location C:\Test\
   2 Get-History
   4 Get-Command Clear-History
   6 Get-Command Clear-History -ShowCommandInfo
   7 Get-History
   8 Clear-History -Id 3, 5

Get-History cmdlet 显示 PowerShell 会话的历史记录。 Clear-History 删除命令历史记录。 Id 参数指定要删除的命令。 Get-History 显示更新的命令历史记录,并确认删除了 ID 3Id 5

示例 5:按 ID 编号和计数删除命令

此命令使用 IdCount 参数删除命令历史记录。 从指定的 ID(从最早到最早)中删除命令。

Get-History

Id CommandLine
  -- -----------
   1 Set-Location C:\Test\
   2 Get-Command Clear-History
   3 Get-Command Clear-History -Syntax
   4 Get-Command Clear-History -ShowCommandInfo
   5 Get-Help Get-Alias
   6 Get-Command Get-ChildItem -Syntax
   7 Get-Help Clear-History
   8 Set-Location C:\Test\Logs
   9 Get-Help Get-Variable
  10 Get-Help Get-ChildItem

Clear-History -Id 7 -Count 5
Get-History

Id CommandLine
  -- -----------
   1 Set-Location C:\Test\
   2 Get-Command Clear-History
   8 Set-Location C:\Test\Logs
   9 Get-Help Get-Variable
  10 Get-Help Get-ChildItem
  11 Clear-History -Id 7 -Count 5

Get-History cmdlet 显示 PowerShell 会话的历史记录。 Clear-History 删除命令历史记录。 Id 参数指定以 Id 7开头。 Count 参数指定删除五个命令,包括指定的 IDGet-History 显示更新的命令历史记录,并确认删除了 5 个命令,Id 3 - Id 7

参数

-CommandLine

从 PowerShell 会话中删除命令历史记录。 字符串必须是完全匹配,或使用通配符来匹配 Get-History显示的 PowerShell 会话历史记录中的命令。 如果输入多个字符串,Clear-History 删除与任何字符串匹配的命令。 CommandLine 参数可用于 计数

对于带空格的字符串,请使用单引号。 有关详细信息,请参阅 about_Quoting_Rules

类型:String[]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:True

-Confirm

在运行 Clear-History cmdlet 之前,提示你进行确认。

类型:SwitchParameter
别名:cf
Position:Named
默认值:False
必需:False
接受管道输入:False
接受通配符:False

-Count

指定 Clear-History 删除的历史记录条目数。 命令按顺序删除,从历史记录中最早的条目开始。

计数ID 参数可以一起使用。 Count 参数指定要删除的命令数,包括指定的 ID。从指定的 ID开始,命令按反向顺序删除。 例如,如果 ID 为 30,并且 计数 为 10,Clear-History 删除项 21 到 30。

CountCommandLine 参数可以一起使用。 计数 指定要删除的命令数,这些命令与 commandLine 参数值匹配。 命令按顺序删除。

类型:Int32
Position:1
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Id

指定 Clear-History 删除 ID 的命令历史记录。 若要显示 ID 数字,请使用 Get-History cmdlet。 ID 数字是连续的,命令在整个 PowerShell 会话中保留其 ID 编号。 ID 参数可与 计数最新一起使用。

类型:Int32[]
Position:0
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Newest

使用 最新 参数时,Clear-History 删除历史记录中的最新条目。 默认情况下,Clear-History 删除历史记录中最早的条目。

最新 参数可与 IDCount一起使用。 Count 参数指定要删除的命令数,包括指定的 ID。从指定的 ID开始,命令按顺序删除。 例如,如果 ID 为 30,并且 计数 为 10,Clear-History 删除项 30 到 39。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-WhatIf

显示 Clear-History cmdlet 运行时会发生什么情况。 cmdlet 未运行。

类型:SwitchParameter
别名:wi
Position:Named
默认值:False
必需:False
接受管道输入:False
接受通配符:False

输入

None

不能通过管道将对象传递给此 cmdlet。

输出

None

此 cmdlet 不返回任何输出。

备注

Windows PowerShell 包含以下 Clear-History别名:

  • clhy

PowerShell 会话历史记录是 PowerShell 会话期间输入的命令的列表。 可以查看历史记录、添加和删除命令,以及从历史记录中运行命令。 有关详细信息,请参阅 about_History

会话历史记录独立于 PSReadLine 模块维护的历史记录进行管理。 这两个历史记录在加载 PSReadLine 的会话中都可用。 此 cmdlet 仅适用于会话历史记录。 有关详细信息,请参阅 about_PSReadLine