tex*_*ern 10 shell history cmd
我用的是Windows 7 64bit.我发现cmd.exe和powershell都无法保存历史记录.这意味着当我退出shell时它丢失了我的命令历史记录.
有没有工具可以帮助cmd.exe或powershell记住历史记录?我尝试使用控制台2.控制台2很小,有一个标签界面.但是控制台2也记不起历史.也许有另一个前端可以做到这一点.
以下答案来自Keith Hill(PowerShell Microsoft MVP)对powershell历史问题的回答:如何防止重复命令:
顺便说一句,如果你想在退出时自动保存它,你可以在2.0上这样做:
Register-EngineEvent PowerShell.Exiting {
    Get-History -Count 32767 | Group CommandLine | 
    Foreach {$_.Group[0]} | Export-CliXml "$home\pshist.xml" } -SupportEvent
Run Code Online (Sandbox Code Playgroud)
然后在负载恢复时,您只需要:
Import-CliXml "$home\pshist.xml" | Add-History
Run Code Online (Sandbox Code Playgroud)
        Windows PowerShell博客上有一篇很好的帖子,它提供了一种在会话中保留命令历史记录的方法:
用于导出和导入命令历史记录的相关命令是Get-History和Add-History.将以下内容添加到PowerShell配置文件中:
Register-EngineEvent PowerShell.Exiting {
    Get-History | Export-Csv $HOME\pshist.csv
} | Out-Null
if (Test-Path $Home\pshist.csv) {
    Import-Csv $HOME\pshist.csv | Add-History
}
Run Code Online (Sandbox Code Playgroud)
这将保留历史记录,使您仍然可以检查历史记录的开始和结束时间,并计算每个历史记录的持续时间.
但是有一个警告:上面的脚本只会记住最近退出的PowerShell窗口的历史记录.如果您同时使用多个shell会话,那么除了其中一个会话之外的所有会话的历史记录都将丢失.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           3768 次  |  
        
|   最近记录:  |