查看 powershell 的完整历史记录,而不仅仅是当前会话

查看 powershell 的完整历史记录,而不仅仅是当前会话

Powershell 现在可以轻松记住以前会话的历史记录,我只需使用向上箭头即可找到以前的命令。但我希望能够显示此历史记录,但我不知道该怎么做。

由于某种原因,get-history 命令似乎只能显示当前会话的历史记录。即使传递 -count 选项也无济于事。

目前,我唯一能找到上一个命令的方法是手动向上单击所有之前的命令来找到我要找的命令。如果命令是在一段时间前运行的,这显然会非常繁琐。

是否有一些技巧可以让 get-history 在各个会话中正常工作。此列表显然存储在某个地方,因此应该可以显示它。

编辑:这不是一个重复的问题。这是关于访问 Powershell 已经记录的完整历史记录,而不是关于添加一种新的(自定义)方法来保存会话历史记录。在 Powershell 能够自动记录完整的命令历史记录之前,这些其他问题和相关答案都是相关的。

答案1

我的 PS 个人资料中有这个:

function hist { 
  $find = $args; 
  Write-Host "Finding in full history using {`$_ -like `"*$find*`"}"; 
  Get-Content (Get-PSReadlineOption).HistorySavePath | ? {$_ -like "*$find*"} | Get-Unique | more 
}

答案2

“查尔斯罗斯”评论的解决方案正是我所寻找的:

Get-Content (Get-PSReadlineOption).HistorySavePath | more

答案3

这些命令也存储在一个文本文件中。您可以通过执行以下命令找到此文件的位置:

(Get-PSReadlineOption).HistorySavePath

上面提供的关键字搜索也很有帮助。

相关内容