探索指令
PowerShell 有數千個指令,沒有人能全部記住。好消息是它內建了三個「探索指令」,讓你隨時能自己找到需要的指令、讀懂用法、看清楚指令回傳什麼。本頁就是 PowerShell 最重要的 20% 之一。
Cmdlet 的命名規則
PowerShell 的原生指令稱為 cmdlet(唸作 command-let),一律採「動詞-名詞」格式:
Get-Process # 取得(Get)處理程序(Process)
Stop-Service # 停止(Stop)服務(Service)
Set-Location # 設定(Set)位置(Location),也就是 cd
動詞來自一份核准動詞清單,最常見的是 Get、Set、New、Remove、Start、Stop。因為命名有規則,你看到 Get-Service 就能猜到 Stop-Service、Restart-Service 大概存在。
三個探索指令
Get-Command:找指令
不知道有什麼指令可用時,用 Get-Command 搜尋。* 是萬用字元。
# 名稱含 Process 的所有指令
Get-Command *Process*
# 所有「Get」開頭、名詞是 Service 的指令
Get-Command -Verb Get -Noun Service
# 某個模組提供了哪些指令
Get-Command -Module Microsoft.PowerShell.Management
Get-Help:讀說明
找到指令後,用 Get-Help 看用法。最實用的是 -Examples,直接給你可以複製的範例。
Get-Help Get-Process # 基本說明
Get-Help Get-Process -Examples # 只看範例(最常用)
Get-Help Get-Process -Full # 完整說明,含每個參數的細節
Get-Help Get-Process -Online # 用瀏覽器開啟官方線上文件
第一次使用時,內建說明可能只有精簡版。執行下面這行下載完整說明檔:
除了 cmdlet 說明,還有 about_ 開頭的概念性文件,例如 Get-Help about_Comparison_Operators。想知道「PowerShell 怎麼做某件事」時,Get-Help about_* 會列出全部。
Get-Member:看物件有什麼
PowerShell 的指令回傳的是物件。Get-Member 告訴你這個物件有哪些屬性(property,物件的資料)與方法(method,物件能做的動作)。
輸出的 TypeName 是物件的型別(這裡是 System.Diagnostics.Process),MemberType 欄位則標示每個成員是 Property、Method 等。找到屬性名稱之後,就能在管線中用它來篩選、排序或選取,詳見 Cmdlet 與管線。
探索循環
遇到不會的事,照這個順序:Get-Command 找指令 → Get-Help -Examples 看用法 → 執行 → Get-Member 看結果有什麼可以用。
提高效率的小技巧
| 技巧 | 說明 |
|---|---|
| Tab 補全 | 輸入 Get-Pro 按 Tab 會補成 Get-Process;參數名稱也能補全,連續按 Tab 循環切換 |
| 別名(alias) | 常用指令的縮寫,例如 ls 是 Get-ChildItem、cd 是 Set-Location。用 Get-Alias 查詢 |
| 歷史紀錄 | 上下方向鍵叫出先前的指令;Get-History 列出本次工作階段的指令 |
| 錄製操作 | Start-Transcript 把整個工作階段的輸入輸出存成文字檔,適合留存操作紀錄 |
別名只適合在終端機互動時用
別名輸入快,但寫進腳本會讓別人(包含未來的你)難以閱讀,也可能在不同平台上指向不同指令。腳本裡請使用完整的 cmdlet 名稱。
推薦影音
Microsoft Learn 收錄:PowerShell 初學者第一課
簡述:Microsoft Learn 節目收錄的入門影片(約 28 分鐘),示範 Get-Command、Get-Help、Get-Alias、Get-Member、Get-History、Start-Transcript,幾乎與本頁內容一一對應,最適合跟著一起操作。錄製時間較早(2016 年),但這些指令在 PowerShell 7 用法相同。
官方課程
官方免費課程
- Get started with Windows PowerShell(Microsoft Learn 學習路徑,3 個單元):涵蓋 PowerShell 版本與編輯器、cmdlet 語法與參數、以及本頁的「找指令與使用 Get-Help」。
- Getting Started with PowerShell 3.0:The help system:PowerShell 之父 Jeffrey Snover 與 Jason Helmick 的經典 Jump Start 系列第 2 單元,專講說明系統。系列以 PowerShell 3.0 錄製,但觀念沿用至今。
相關資料
- PowerShell 101:Getting started(官方線上教材)
- 下一步:Cmdlet 與管線