Visual Studio Code 中的 PowerShell
PowerShell 是一種以工作為基礎的命令列 Shell 和指令碼語言,建置於 .NET 之上,為任何平台上的管理員提供強大的工具集。
適用於 Visual Studio Code (VS Code) 的 Microsoft PowerShell 擴充功能提供豐富的語言支援和功能,例如語法完成、定義追蹤和 PowerShell 的 Linting。此擴充功能應可在任何支援 VS Code 的地方使用 目前支援版本的 PowerShell 7+。
Windows PowerShell 5.1 的支援是盡最大努力提供。需要 .NET Framework 4.8 或更高版本。
支援 VS Code 遠端開發環境,包括 GitHub Codespaces 和 VS Code Server。
適用於 Web 的 Visual Studio Code 僅支援有限的功能,例如基本語法醒目提示,因為 PowerShell 引擎無法在此環境中執行。
我們主動測試下列組態
- Windows Server 2022 搭配 Windows PowerShell 5.1 和 PowerShell 7+
- macOS 14.7 搭配 PowerShell 7+
- Ubuntu 24.04 搭配 PowerShell 7+
在 Windows 上,我們也會在啟用和未啟用受限語言模式的情況下進行測試。
安裝 PowerShell 擴充功能
可以從 Visual Studio Code Marketplace 安裝 PowerShell 擴充功能,方法是按一下安裝按鈕。您也可以從 VS Code 內安裝 PowerShell 擴充功能,方法是使用鍵盤快速鍵 ⇧⌘X (Windows、Linux Ctrl+Shift+X) 開啟 [擴充功能] 檢視,輸入PowerShell,然後選取 PowerShell 擴充功能
主要功能
- 語法醒目提示
- 進階內建程式碼片段
- 適用於 Cmdlet 等的 IntelliSense
- 由 PowerShell Script Analyzer 報告的問題
- Cmdlet、變數、類別等的跳到定義
- Cmdlet、變數、類別等的尋找參考
- 文件和工作區符號導覽
- 以符號為基礎的 大綱檢視
- 使用 F8 在目前終端機中執行選取的 PowerShell 程式碼
- 使用 Ctrl + F1 啟動游標下符號的線上說明
- PowerShell 偵錯工具整合
- 可與偵錯工具互動的擴充功能終端機 (試試看
Set-PSBreakpoint
!) - 可在佈景主題選擇器中取得的 PowerShell ISE 佈景主題
- 也請嘗試使用 ISE 模式,方法是使用 ⇧⌘P (Windows、Linux Ctrl+Shift+P),然後搜尋「啟用 ISE 模式」
偵錯
PowerShell 擴充功能使用 VS Code 的內建偵錯介面,以允許偵錯 PowerShell 指令碼和模組。如需偵錯 PowerShell 的詳細資訊,請參閱使用 VS Code。
多版本支援
您可以設定 PowerShell 擴充功能以使用您電腦上安裝的任何支援 PowerShell 版本,方法是依照這些指示進行。
或從命令選擇區執行 [PowerShell: 顯示工作階段功能表] 命令 (⇧⌘P (Windows、Linux Ctrl+Shift+P))。
CodeLens 支援
CodeLens 是 VS Code 功能,可提供在原始碼中顯示的可動作內容資訊。
CodeLens 功能包括
-
Pester 執行測試和偵錯測試。
-
Pester 符號支援
-
函式、變數、類別和其他符號參考
CodeLens 參考支援會顯示符號在您的程式碼中被參考的次數,並允許您跳到特定參考。
PSScriptAnalyzer 整合
PSScriptAnalyzer 是一個 PowerShell 模組,可為模組和指令碼提供靜態原始碼檢查器。PSScriptAnalyzer 具有驗證 PowerShell 程式碼品質的規則。這些規則是以 PowerShell 小組和社群所識別的 PowerShell 最佳做法為基礎。PSScriptAnalyzer 產生診斷記錄 (錯誤和警告),以告知使用者潛在的程式碼瑕疵,並建議可能的改進解決方案。
PowerShell 擴充功能預設包含 PSScriptAnalyzer,並自動對您在 VS Code 中編輯的 PowerShell 指令碼檔案執行分析。
PSScriptAnalyzer 隨附內建規則集合,可檢查 PowerShell 原始碼的各種層面,例如未初始化的變數是否存在、PSCredential 類型的使用方式、Invoke-Expression
的使用方式和其他項目。此模組也允許您包含或排除特定規則。
若要停用 PSScriptAnalyzer,請開啟您的設定 (⌘, (Windows、Linux Ctrl+,)),瀏覽 [擴充功能],選取 [PowerShell] 擴充功能,然後取消選取 [指令碼分析: 啟用] (powershell.scriptAnalysis.enable
) 的核取方塊。
PSScriptAnalyzer 也提供程式碼格式化。您可以使用 [格式化文件] 命令或 (⇧⌥F (Windows Shift+Alt+F、Linux Ctrl+Shift+I)) 鍵盤快速鍵叫用自動文件格式化。
Pester 整合
Pester 是一個用於執行單元測試的架構,以執行,而 Windows PowerShell 5.1 隨附預先安裝的 Pester 3.40。若要更新 Pester 或在其他平台上安裝最新版本,請依照Pester 安裝指示進行。
PowerShell 擴充功能設定
您可以從 檔案 > 喜好設定 > [設定] 功能表項目自訂 VS Code 設定。
您也可以選取位於活動列左下角的齒輪圖示。
您也可以使用鍵盤快速鍵 ⌘, (Windows、Linux Ctrl+,) 開啟您的設定。您仍然可以使用命令選擇區中的 [喜好設定: 開啟使用者設定 (JSON)] 命令 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 或使用 "workbench.settings.editor"
設定變更預設設定編輯器來開啟 settings.json
檔案。
前往 使用者和工作區設定 以取得設定 VS Code 設定的詳細資訊。
Types.ps1xml 和 Format.ps1xml 檔案
PowerShell .ps1xml
檔案用於擴充類型系統和定義輸出格式設定。如需這些檔案的詳細資訊,請參閱關於 Types.ps1xml 和 Format.ps1xml 的官方 PowerShell 文件。當您撰寫 .ps1xml
檔案時,您可以安裝 Red Hat 的 XML 擴充功能來取得 IntelliSense 功能。安裝後,將此組態新增至您的使用者設定
"xml.fileAssociations": [
{
"systemId": "https://raw.githubusercontent.com/PowerShell/PowerShell/master/src/Schemas/Format.xsd",
"pattern": "**/*.Format.ps1xml"
},
{
"systemId": "https://raw.githubusercontent.com/PowerShell/PowerShell/master/src/Schemas/Types.xsd",
"pattern": "**/*.Types.ps1xml"
}
]
此組態會告知 XML 擴充功能針對所有 .ps1xml
檔案使用 PowerShell 存放庫中的官方 XML 結構描述。設定這些結構描述會在 ps1xml
檔案中啟用下列功能
- 語法錯誤報告
- 結構描述驗證
- 標籤和屬性完成
- 自動關閉標籤
- 符號醒目提示
- 文件摺疊
- 文件符號和大綱
- 重新命名支援
- 文件格式化
範例指令碼
範例指令碼隨附於擴充功能中,可在下列路徑中找到。
~/.vscode/extensions/ms-vscode.PowerShell-<版本>/examples
若要在 VS Code 中開啟或檢視範例,請從您的 PowerShell 命令提示字元執行下列命令
code (Get-ChildItem ~\.vscode\extensions\ms-vscode.PowerShell-*\examples)[-1]
您也可以使用 [PowerShell: 開啟範例資料夾] 命令,從命令選擇區 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 開啟範例。
其他資源
PowerShell 文件中有更詳細的文章。從使用 VS Code 開始。
查看疑難排解指南以取得常見問題的解答。
如需偵錯的詳細資訊,請查看由 @keithHill 撰寫的 Hey, Scripting Guy! 關於使用 PowerShell 擴充功能進行偵錯的兩部分部落格文章系列
測試新功能並提供意見反應
我們建議您盡可能嘗試預先發行版本。當預先發行版本可用時,可以從 Marketplace 使用 [切換至預先發行版本] 按鈕來安裝。您可以使用將會出現的 [切換至發行版本] 按鈕切換回穩定版本的擴充功能。您也可以使用 [解除安裝] 按鈕旁的箭號,然後選擇 [安裝另一個版本...] 來降級至其他版本的擴充功能。
如果您發現錯誤,請開啟問題,並在我們修正時還原為穩定版本。