2015-11-12 70 views
0

Azure PowerShell會記住命令行歷史記錄(幾十年後幾乎可用的shell),但不幸的是它在退出和重新啓動後會很快遭受完全失憶症。所以它不能在會話之間記住它。如何讓Azure PowerShell記住命令行歷史記錄?

有什麼辦法讓Azure PowerShell記住下一個會話中的命令行歷史嗎?

回答

2

我根據this article電流法:

第1步:製作PowerShell配置文件,see Example 3 here。如果它已存在,請跳到步驟2.

第2步:將其添加到您的配置文件。

$MaximumHistoryCount = 1KB 
if (!(Test-Path "$((Get-ChildItem $PROFILE).DirectoryName)\history.csv")) 
{ New-Item "$((Get-ChildItem $PROFILE).DirectoryName)\history.csv" -ItemType File -Force 
} 

function bye 
{ Get-History -Count $MaximumHistoryCount | Export-CSV -Path "$((Get-ChildItem $PROFILE).DirectoryName)\history.csv" 
    exit 
} 

if (Test-path "$((Get-ChildItem $PROFILE).DirectoryName)\history.csv") 
{ Import-CSV "$((Get-ChildItem $PROFILE).DirectoryName)\history.csv" | Add-History 
} 
register-engineevent PowerShell.Exiting -action { bye } 

注:

  • 您可能需要使用不同的路徑,如原文章的位置。
  • 使用Get-HistoryInvoke-History來運行先前的命令。
  • 您也可以使用#[tab],例如:鍵入#5然後按tab鍵展開原始命令。
  • 一些用戶報告,如果他們退出PowerShell中鍵入exit,而不是關閉窗口的歷史,纔會保存。
  • 這是用於PowerShell歷史記錄,而不是控制檯緩衝區。按上/下僅適用於您在當前控制檯上輸入的命令。

額外的資源和一些替代方法:

PSReadLine提供了 「歷史的自動保存,包括跨現場會議共享的歷史。」 PSReadLine除了保存歷史記錄外,還做了很多工作。另外,如果你想要在歷史中上下更有用,最後一個列出了更多的鍵綁定,使它更有用。

+0

這是一個非常翔實的答案!它讓我對我通常回答的華夫餅有點羞愧;) –