使用向上箭头访问PowerShell历史logging

我最近切换到PowerShell自从我的Cygwin bash开始给我使用maven时无意义的编译错误。 我发现如何保存和恢复( https://stackoverflow.com/questions/9259723/is-there-a-windows-shell-tool-can-keep-history )我的命令历史,这似乎工作(使用“历史logging”将在干净的启动后显示最近的命令)。

我似乎无法做到的是使用向上箭头访问这个历史logging,就像在当前会话中使用该命令一样。

有任何想法吗?

你不能。 没有访问控制台程序历史的API。

我建议杀死这个老习惯(我知道,他们很难死),并使用PowerShell的特定功能。 这其实很棒。 这是#* [tab],这里有两个选项(括号([tab]中的选项卡)意味着应按下tab按钮):

#pattern_from_command[tab] 

– > Powershell循环所有包含“pattern_from_command”的历史命令。

– > EG:在Powershell中:键入#echo,按Tab – > Powershell循环所有包含“echo”的历史命令(当然,如果有的话)。

 #<id>[tab] 

– > Powershell使用id <id>完成命令。

– > EG:在Powershell中:键入#3,按Tab – > Powershell将第三(3)命令写入历史命令行(尽管不直接执行,只需按回车即可执行)。

我知道这是不一样的,你会在bash中做,但我认为这是值得尝试和习惯。

HTH Bartek

截至2013年10月,现在可以使用美妙的PSReadline模块: http ://github.com/lzybkr/PSReadLine

在PowerShell会话退出时,您仍然需要保存历史记录,并在加载PSReadline之前将其加载到profile.ps1中(请参阅http://technet.microsoft.com/zh-cn/library/ee156792.aspx )。 你可以注册一个钩子来保存你的历史,当PowerShell存在使用像这样的钩子: Powershell配置文件“退出”事件? 。 与vanilla PowerShell不同,PSReadLine允许上/下键访问这个历史缓冲区。