• 跳至主要導覽
  • 跳至主要內容
  • 跳至主要資訊欄
Office 指南

Office 指南

辦公室工作實用教學

  • Excel
  • Word
  • PowerPoint
  • Windows
  • PowerShell
  • R

PowerShell 指令歷史紀錄使用教學

介紹 PowerShell 的指令歷史記錄使用方法,可快速查詢並執行用過的指令,節省打字時間。


在 Windows 的 PowerShell 中,有兩種不同的指令歷史記錄功能,一種是由 Windows PowerShell 終端機(GUI 圖形介面)所提供的「命令歷程記錄」,另外一種則是由 PowerShell 本身所提供的指令歷史記錄,以下是這兩種歷史記錄功能的使用方式。

命令歷程記錄

「命令歷程記錄」是只有在 Windows PowerShell 終端機中才有的功能,在其他的 PowerShell 環境下就不一定能使用。

方向鍵

「向上」與「向下」兩個方向鍵可以用來查看過去執行的指令,按「向上」鍵可以往前查看,而「向下」鍵則是往後查看,這應該是大家都已經熟知的用法。

F8 搜尋指令歷史記錄

F8 鍵可以讓我們在指令歷史記錄中,搜尋指定關鍵字開頭的指令,例如要找 pi 開頭的指令,可以在 PowerShell 視窗中輸入 pi 之後,再按下 F8 鍵往前搜尋,若有符合的指令記錄,就會自動顯示在指令列中。

F8 搜尋指令歷史記錄

如果過去執行的指令中,有好多個符合的指令,我們可以多按幾下 F8 鍵,尋找我們要的指令。

緩衝區大小與數目

Windows PowerShell 終端機的命令歷程記錄都是放在緩衝區之中,預設的緩衝區大小是 50(也就是可以儲存 50 筆指令記錄),若要改變這個設定,可以從「內容」設定中更改。
Step 1
在 Windows PowerShell 終端機標題列上,點選滑鼠右鍵,選擇「內容」。

Windows PowerShell 內容

Step 2
在「命令歷程記錄」區塊中,可以調整緩衝區大小與數目。緩衝區大小是指可以儲存的指令筆數,緩衝區數目是指可以同時讓多少個獨立的 Windows PowerShell 終端機儲存各自的命令歷程記錄。

Windows PowerShell 內容

PowerShell 指令歷史記錄

PowerShell 本身也會自動記錄使用者執行過的指令。

查閱 PowerShell 指令歷史記錄

若要查閱 PowerShell 內部的指令歷史記錄,可以使用 Get-History 這個指令:

# 查閱指令歷史記錄
Get-History

查閱指令歷史記錄

Get-History 預設只會顯示最後執行的 32 筆指令,若要顯示更多筆,可以使用 -Count 參數指定顯示指令的筆數:

Get-History -Count 100

搜尋 PowerShell 指令歷史記錄

如果要在 PowerShell 指令歷史記錄中,以關鍵字來搜尋想要用的指令,可以將 Get-History 的輸出導給 Select-String 進行篩選,例如若要搜尋含有 ping 關鍵字的指令,可以執行:

Get-History |  Select-String -Pattern "ping"
搜尋 PowerShell 指令歷史記錄

顯示指令詳細記錄

PowerShell 的指令紀錄除了指令的內容之外,還有包含指令執行的時間點與執行結果,若要查看詳細的記錄,可以配合 Format-List 輸出詳細的資訊:

Get-History | Format-List -Property *
顯示指令詳細記錄

執行指令歷史記錄

在查詢到想要使用的歷史指令之後,可以使用 Invoke-History 加上歷史指令的編號,即可直接執行該指令。例如若想要執行編號 4 的歷史指令,可以執行:

Invoke-History 4
執行指令歷史記錄

清除指令歷史記錄

若要清除 PowerShell 內部的指令歷史記錄,可以執行 Clear-History 指令:

Clear-History
清除指令歷史記錄

匯出與匯入指令歷史記錄

若要將 PowerShell 的指令歷史記錄匯出成 XML 檔案,可以執行:

# 將指令歷史紀錄匯出為 XML 檔案
Get-History | Export-Clixml -Path D:my_commands.xml

若要從 XML 檔案中匯入 PowerShell 的指令歷史紀錄,可以執行:

# 從 XML 檔案匯入指令歷史紀錄 
Add-History -InputObject (Import-Clixml -Path D:my_commands.xml)

歷史記錄儲存位置

如果想知道 PowerShell 儲存歷史記錄的檔案位置,可以使用 Get-PSReadlineOption 指令:

# 歷史記錄儲存位置
(Get-PSReadlineOption).HistorySavePath

我們可以直接用記事本開啟這個檔案,查看所有被儲存下來的歷史紀錄:

# 開啟歷史記錄儲存位置
notepad (Get-PSReadlineOption).HistorySavePath

參考資料:HTG、Stephanos Constantinou Blog、StackOverflow、TechNet

分類:PowerShell

讀者互動方式

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

主要資訊欄

搜尋

近期文章

  • C++ 語言使用 Crypto++ 實作 RSA 數位簽章教學與範例
  • C++ 語言使用 Crypto++ 實作 RSA-OAEP 搭配 SHA256 加密教學與範例
  • C++ 語言使用 Crypto++ 實作 AES 加密、解密、認證加密教學與範例
  • C++ 語言使用 Crypto++ 實作 MD5、SHA1、SHA2、BLAKE2 雜湊教學與範例
  • Ubuntu Linux 安裝、使用 Crypto++ 加密函式庫教學與範例
  • C 語言使用 OpenSSL 實作橢圓曲線 ECDH 金鑰交換教學與範例
  • Python 以 eciespy 實作 ECC 非對稱式加密方法教學與範例
  • C 語言使用 OpenSSL 實作 PBKDF2 教學與範例

推薦網站

  • Udemy 線上教學課程
  • Coursera 線上教學課程

關注本站

  • 電子郵件
  • Facebook

公益

  • 家扶基金會
  • 台灣世界展望會
  • Yahoo 奇摩公益
  • igiving 公益網
  • 兒福聯盟

Copyright © 2021 · Office Guide