2012-02-13 21 views
10

Windows 7 64bit kullanıyorum. Her iki cmd.exe'yi buldum ve powershell geçmişi tutamıyor. Kabuktan çıkarken komut geçmişimi kaybettim demektir.Bir pencere kabuğu aracı geçmişi tutabilir mi?

Tarihin hatırlanması için cmd.exe veya powershell'e yardımcı olabilecek bir araç var mı? Konsol 2'yi kullanmayı deniyorum. Konsol 2 küçük ve sekme arabirimine sahip. Ancak konsol 2 de tarihi hatırlayamıyor. Belki başka bir ön uç daha yapabilir.

cevap

5

Orada oturumları boyunca komut geçmişini koruyarak bir yol sağlar Windows PowerShell Blog üzerinde mükemmel bir yazı var:

http://blogs.msdn.com/b/powershell/archive/2006/07/01/perserving-command-history-across-sessions.aspx

ihracat ve komut geçmişini ithalatı için ilgili komutlar Get-History ve Add-History bulunmaktadır. senin PowerShell profiline aşağıdaki ekleyin:

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 
} 

Bu hala başlangıç ​​ve bitiş süreleri için geçmişini inceleyebilirsiniz şekilde geçmişi koruyacak ve her süresini hesaplayın.

Ancak bir uyarı: Yukarıdaki komut yalnızca en son çıkarılan PowerShell penceresinin geçmişini hatırlayacaktır. Aynı anda birden fazla kabuk oturumunda çalışıyorsanız, bunlardan yalnızca birinin geçmişi kaybolur.

6

aşağıda cevap sorusuna powershell history: how do you prevent duplicate commands için onun cevabını Keith Tepesi (PowerShell Microsoft MVP) dan:

: BTW otomatik olarak, şöyle 2.0'da yapabilirsiniz Çıkışta bu kaydetmek istiyorsanız

Sonra yükün tek ihtiyacınız üzerine geri

Register-EngineEvent PowerShell.Exiting { 
    Get-History -Count 32767 | Group CommandLine | 
    Foreach {$_.Group[0]} | Export-CliXml "$home\pshist.xml" } -SupportEvent 
geçerli:

Import-CliXml "$home\pshist.xml" | Add-History 
İlgili konular