第 2 章

五分鐘認識核心:介面、指令、物件觀念

本章重點

  • 認識 PowerShell 的介面與提示符號
  • 了解 Cmdlet 的命名規則
  • 理解 PowerShell 的物件觀念
  • 學會用管線(pipeline)串接指令
  • 知道如何取得說明文件

PowerShell 的介面

開啟 PowerShell 後,你會看到類似這樣的畫面:

Windows PowerShell
著作權 (C) Microsoft Corporation. 著作權所有,並保留一切權利。

PS C:\Users\你的帳號>

PS 是 PowerShell 的縮寫,後面接的是目前所在的路徑。 > 之後就是你輸入指令的地方。

路徑觀念: C:\Users\你的帳號 就是你的「使用者資料夾」, 也叫家目錄(Home Directory)。PowerShell 開啟時預設在這裡。

Cmdlet:PowerShell 的指令格式

PowerShell 的指令叫做 Cmdlet(讀作 command-let), 命名規則是 動詞-名詞,例如:

  • Get-ChildItem:取得(Get)子項目(ChildItem),也就是列出檔案
  • Set-Location:設定(Set)位置(Location),也就是切換資料夾
  • Copy-Item:複製(Copy)項目(Item)
  • Remove-Item:移除(Remove)項目(Item)
  • Write-Output:輸出(Write)內容(Output)到畫面

這種命名方式很有規律,光看名稱就能猜出用途。 常用的動詞有:Get、Set、New、Remove、Copy、Move、Write、Read。

別名(Alias): 很多 Cmdlet 有縮寫,例如 Get-ChildItem 可以寫成 gcilsdir。 但學習時建議先用完整名稱,比較不容易搞混。

物件觀念

這是 PowerShell 最重要的觀念,也是它和 cmd 最大的不同。

在 cmd 裡,dir 的輸出是一大串文字。 在 PowerShell 裡,Get-ChildItem 的輸出是一個個「物件」, 每個物件代表一個檔案或資料夾,帶有很多屬性。

# 列出目前資料夾,並只顯示名稱和大小
Get-ChildItem | Select-Object Name, Length

# 只列出 .txt 檔
Get-ChildItem -Filter "*.txt"

# 按大小由大到小排序
Get-ChildItem | Sort-Object Length -Descending

你可以對輸出的物件做篩選、排序、計算,這就是物件導向的好處。

管線(Pipeline)

管線符號 | 可以把前一個指令的輸出,送給下一個指令當作輸入。 這是 PowerShell 最強大的功能之一。

# 列出檔案,篩選大於 1MB 的,再按大小排序
Get-ChildItem | Where-Object { $_.Length -gt 1MB } | Sort-Object Length -Descending

# 取得執行中的服務,只顯示名稱
Get-Service | Select-Object Name, Status | Where-Object { $_.Status -eq "Running" }
讀法:先執行左邊,結果傳給右邊,再繼續處理。 就像工廠流水線,每個站點做一件事。

取得說明文件

不知道某個指令怎麼用?PowerShell 有內建說明:

# 查詢 Get-ChildItem 的說明
Get-Help Get-ChildItem

# 查詢說明並顯示範例
Get-Help Get-ChildItem -Examples

# 在視窗中顯示完整說明
Get-Help Get-ChildItem -ShowWindow
第一次使用 Get-Help: 系統可能提示你更新說明文件,輸入 Update-Help 即可(需要網路)。
常見錯誤: 指令名稱大小寫其實不影響執行(PowerShell 不分大小寫), 但 get-childitemGet-ChildItem 都可以, 建議習慣用大寫開頭,讀起來比較清楚。
小練習: 開啟 PowerShell,依序嘗試以下指令:
  1. Get-ChildItem:看看你家目錄有什麼
  2. Get-ChildItem | Sort-Object Length -Descending:按大小排序
  3. Get-Help Get-ChildItem -Examples:看看說明文件長什麼樣

小結

PowerShell 的指令格式是動詞-名詞,輸出的是物件而非純文字, 用管線 | 可以串接指令做更複雜的操作。 這三個核心觀念,是後面所有章節的基礎。

下一章,我們正式開始操作。