(一)获取所有包含“history”关键字的cmdlet

使用PS C:\< Get-Command -Name *history* -CommandType cmdlet,结果如图。

Windows PowerShell命令历史用法详解_第1张图片

(二)通过上图查找到history相关的命令后,我们可以再使用get-history来获取命令的历史记录,如图。

Windows PowerShell命令历史用法详解_第2张图片

(三)可以通过使用Get-Alias -Definition Get-History的方式来获取该cmdlet的别名,如图。

Windows PowerShell命令历史用法详解_第3张图片

(四)如何通过查看到的命令历史记录信息来运行历史命令呢?

例如上面查到的命令记录有Get-ChildItem,这个命令的历史记录的ID号是3,那么我们可以通过使用PS C:\< Invoke-History -Id 3来运行这个历史命令,如图。

Windows PowerShell命令历史用法详解_第4张图片

(五)如何查看特定的命令历史记录呢?

可以通过使用Get-History ID号的形式,如图,获取ID号为3、4的命令历史记录。

Windows PowerShell命令历史用法详解_第5张图片

但是不能使用 Invoke-History -Id 3,4的方式来运行,否则会报错,如图。

Windows PowerShell命令历史用法详解_第6张图片

同样的,

我们可以使用Get-History 3 | Invoke-History的方式去执行历史命令,如图。

Windows PowerShell命令历史用法详解_第7张图片

但是,

不能使用Get-History 3,4 | Invoke-History的方式去执行命令,否则会报错,如图。

Windows PowerShell命令历史用法详解_第8张图片

通过上图的报错可以看出,管道不能同时接受多个项目的输入,我们可以添加foreach循环语句来解决该问题,如图。

使用命令:

Get-History -Id 3, 4 | foreach { Invoke-History -id $_.ID}

命令成功执行,如图。

Windows PowerShell命令历史用法详解_第9张图片

Tip:http://blogs.technet.com/b/heyscriptingguy/archive/2015/03/03/avoid-scripting-use-powershell-command-history.aspx

==============================================================================