我使用当前的
Windows 10和Powershell 5.1.通常,我想查找过去用过的命令来修改和/或重新运行它们.不可避免地,我正在寻找的命令是在之前或不同的PowerShell窗口/会话中运行的.
当我敲击↑键时,我可以浏览许多会话中的许多命令,但是当我尝试使用Get-History搜索它们时Where-Object {$_.CommandLine -Like“* docker cp *”},我没有得到任何结果.基本故障排除显示Get-History不显示以前会话中的任何内容,如下所示:
C:\Users\Me> Get-History Id CommandLine -- ----------- 1 Get-History | Where-Object {$_.CommandLine -Like "*docker cp*"}
如何使用Get-History或其他Cmdlet搜索↑键提供的先前命令?
您提到的持久性历史记录由
PSReadLine提供.它与会话绑定的Get-History分开.
历史记录存储在由属性(Get-PSReadlineOption).HistorySavePath定义的文件中.使用Get-Content(Get-PSReadlineOption).HistorySavePath或文本编辑器等查看此文件.使用Get-PSReadlineOption检查相关选项. PSReadLine还通过ctrl r执行历史搜索.
使用您提供的示例:
Get-Content(Get-PSReadlineOption).HistorySavePath | ? {$_ -like’* docker cp *’}