我使用的Windows 7 64位。我發現兩者的cmd.exe和PowerShell不能保持歷史。這意味着它失去了我的命令歷史記錄,當我退出外殼。是否有一個Windows外殼工具可以保留歷史?
有沒有一種工具可以幫助CMD.EXE或PowerShell來記住歷史?我嘗試使用控制檯2.控制檯2是微小的,有一個選項卡界面。但控制檯2也記不起歷史。也許還有另一個前端可以做到這一點。
我使用的Windows 7 64位。我發現兩者的cmd.exe和PowerShell不能保持歷史。這意味着它失去了我的命令歷史記錄,當我退出外殼。是否有一個Windows外殼工具可以保留歷史?
有沒有一種工具可以幫助CMD.EXE或PowerShell來記住歷史?我嘗試使用控制檯2.控制檯2是微小的,有一個選項卡界面。但控制檯2也記不起歷史。也許還有另一個前端可以做到這一點。
有上的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
}
這將保存歷史以這樣的方式,你仍然可以檢查的開始和結束時間的歷史,並計算每個的持續時間。
儘管有一個警告:上面的腳本只會記住最近退出的PowerShell窗口的歷史記錄。如果您同時使用多個shell會話,則除了其中一個會話的歷史記錄都將丟失。
下面的答案是從基思·希爾(PowerShell的微軟MVP)在他的問題的答案powershell history: how do you prevent duplicate commands:
順便說一句,如果你想自動保存該退出時,你可以做到這一點在2.0像這樣:
Register-EngineEvent PowerShell.Exiting {
Get-History -Count 32767 | Group CommandLine |
Foreach {$_.Group[0]} | Export-CliXml "$home\pshist.xml" } -SupportEvent
然後在加載所有你需要恢復的是:
Import-CliXml "$home\pshist.xml" | Add-History