about_History

簡短描述

描述如何在命令歷程記錄中取得和執行命令。

詳細描述

當您在命令提示字元中輸入命令時,PowerShell 會將命令儲存在命令歷程記錄中。 您可以使用歷程記錄中的命令作為工作記錄。 而且,您可以從命令歷程記錄中重新叫用並執行命令。

PowerShell 有兩個不同的歷程記錄提供者:內建歷程記錄和 PSReadLine 模組所管理的歷程記錄。 歷程記錄會分開管理,但在載入 PSReadLine會話中可以使用這兩個歷程記錄。

使用 PSReadLine 歷程記錄

PSReadLine 歷程記錄會追蹤所有 PowerShell 會話中使用的命令。 記錄會寫入每個主機的中央檔案。 該歷程記錄檔可供所有會話使用,並包含所有過去的歷程記錄。 工作階段結束時不會刪除歷程記錄。 此外,該歷程記錄無法由 *-History Cmdlet 管理。 如需詳細資訊,請參閱 about_PSReadLine

使用內建會話歷程記錄

內建歷程記錄只會追蹤目前會話中使用的命令。 記錄無法供其他會話使用,而且會在會話結束時刪除。

記錄 Cmdlet

PowerShell 有一組可管理命令歷程記錄的 Cmdlet。

指令程式 別名 描述
Get-History h 取得命令歷程記錄。
Invoke-History r 在命令歷程記錄中執行命令。
Add-History 將命令新增至命令歷程記錄。
Clear-History clhy 從命令歷程記錄中刪除命令。

管理歷程記錄的鍵盤快捷方式

在 PowerShell 控制台中,您可以使用下列快捷方式來管理命令歷程記錄。

  • UpArrow - 顯示上一個命令。
  • DownArrow - 顯示下一個命令。
  • F7 - 顯示命令歷程記錄。
  • ESC - 隱藏歷程記錄。
  • F8 - 尋找命令。 輸入一或多個字元,然後按 F8。 再次按 F8 下一個實例。
  • F9 - 依歷程記錄標識碼尋找命令。 輸入歷程記錄標識碼,然後按 F9。 按 F7 尋找識別碼。
  • #<string>索引 標籤 - 搜尋歷程記錄 *<string>* ,並傳回最新的相符專案。 如果您重複按 Tab 鍵,它會迴圈查看歷程記錄中的相符專案。

注意

這些金鑰系結是由主機應用程式實作。 其他應用程式,例如 Visual Studio Code 或 Windows 終端機,可以有不同的索引鍵系結。 PSReadLine 模組可以覆寫系結。 當您啟動PowerShell工作階段時,PSReadLine 會自動載入。 載入 PSReadLine 時, F7F9 不會系結至任何函式。 PSReadLine 不提供對等的功能。 如需詳細資訊,請參閱 about_PSReadLine

MaximumHistoryCount

喜好 $MaximumHistoryCount 設定變數會決定 PowerShell 儲存在命令歷程記錄中的命令數目上限。 預設值為 4096。

例如,下列命令會將 $MaximumHistoryCount 降低為100個命令:

$MaximumHistoryCount = 100

若要套用設定,請重新啟動PowerShell。

若要儲存所有 PowerShell 工作階段的新變數值,請將指派語句新增至 PowerShell 配置檔。 如需配置檔的詳細資訊,請參閱 about_Profiles

如需喜好設定變數的詳細資訊 $MaximumHistoryCount ,請參閱 about_Preference_Variables

歷程記錄中的命令順序

命令會在命令完成執行時新增至歷程記錄,而不是輸入命令時。 如果命令需要一些時間才能完成,或命令是在巢狀提示字元中執行,則命令在歷程記錄中可能順序不一。 只有在結束提示層級時,才會完成在巢狀提示字元中執行的命令。

另請參閱