Есть ли средство оболочки окон для хранения истории?
Я использую Windows 7 64bit. Я обнаружил, что cmd.exe и powershell не могут хранить историю. Это означает, что он потерял мою историю команд, когда я вышел из оболочки.
Есть ли инструменты, которые могут помочь cmd.exe или powershell запомнить историю? Я пытаюсь использовать консоль 2. Консоль 2 крошечная и имеет интерфейс вкладки. Но консоль 2 тоже не может запомнить историю. Возможно, это может быть другой интерфейс.
Ответы
Ответ 1
Ниже приведен ответ от 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
Затем для восстановления при загрузке все, что вам нужно, это:
Import-CliXml "$home\pshist.xml" | Add-History
Ответ 2
Отличная статья в блоге Windows PowerShell, которая обеспечивает сохранение истории команд в разных сессиях:
http://blogs.msdn.com/b/powershell/archive/2006/07/01/perserving-command-history-across-sessions.aspx
Соответствующими командами для экспорта и импорта истории команд являются 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
}
Это сохранит историю таким образом, что вы все равно сможете просмотреть историю для начала и конца времени и вычислить продолжительность каждого из них.
Предупреждение: Приведенный выше script будет помнить только историю последнего окна PowerShell. Если вы одновременно работаете с несколькими сеансами оболочки, история всех, кроме одного, будет потеряна.