Visual Studio Code 中的 PowerShell
PowerShell 是一種基於 .NET 構建的、面向任務的命令列 shell 和指令碼語言,它為任何平臺上的管理員提供了強大的工具集。
適用於 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。
Visual Studio Code for the Web 僅支援有限的功能,例如基本的語法高亮,因為 PowerShell 引擎無法在此環境中執行。
我們積極測試以下配置:
- Windows Server 2022,搭載 Windows PowerShell 5.1 和 PowerShell 7+
- macOS 14.7,搭載 PowerShell 7+
- Ubuntu 24.04,搭載 PowerShell 7+
在 Windows 上,我們還在啟用和停用約束語言模式 (Constrained Language Mode) 的情況下進行測試。
安裝 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 主題
- 也可以使用 ⇧⌘P (Windows、Linux Ctrl+Shift+P) 嘗試 ISE 模式,然後搜尋“啟用 ISE 模式”
除錯
PowerShell 擴充套件使用 VS Code 的內建除錯介面來除錯 PowerShell 指令碼和模組。有關除錯 PowerShell 的更多資訊,請參閱使用 VS Code。
多版本支援
你可以按照這些說明,將 PowerShell 擴充套件配置為使用你機器上安裝的任何受支援的 PowerShell 版本。
或者從命令面板(⇧⌘P (Windows、Linux Ctrl+Shift+P))執行 PowerShell: 顯示會話選單命令。
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+,) 開啟你的設定。你仍然可以透過命令面板(⇧⌘P (Windows、Linux Ctrl+Shift+P))中的首選項:開啟使用者設定 (JSON) 命令來開啟 settings.json
檔案,或者透過 "workbench.settings.editor"
設定來更改預設設定編輯器。
有關配置 VS Code 設定的更多資訊,請轉到使用者和工作區設定。
Types.ps1xml 和 Format.ps1xml 檔案
PowerShell .ps1xml
檔案用於擴充套件型別系統和定義輸出格式。有關這些檔案的更多資訊,請參閱關於 Types.ps1xml 和 Format.ps1xml 的官方 PowerShell 文件。透過安裝 Red Hat 的 XML 擴充套件,你可以在編寫 .ps1xml
檔案時獲得 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 schema。配置這些 schema 後,可以在 ps1xml
檔案中啟用以下功能:
- 語法錯誤報告
- Schema 驗證
- 標籤和屬性補全
- 自動閉合標籤
- 符號高亮
- 文件摺疊
- 文件符號和大綱
- 重新命名支援
- 文件格式化
示例指令碼
示例指令碼已包含在擴充套件中,可以在以下路徑找到。
~/.vscode/extensions/ms-vscode.PowerShell-<version>/examples
要在 VS Code 中開啟或檢視示例,請在 PowerShell 命令提示符中執行以下命令:
code (Get-ChildItem ~\.vscode\extensions\ms-vscode.PowerShell-*\examples)[-1]
你也可以透過命令面板(⇧⌘P (Windows、Linux Ctrl+Shift+P))使用 PowerShell: 開啟示例資料夾命令來開啟示例。
其他資源
PowerShell 文件中有更詳細的文章。請從使用 VS Code開始。
檢視故障排除指南,以獲取常見問題的答案。
有關除錯的更多資訊,請檢視由 @keithHill 撰寫的關於使用 PowerShell 擴充套件進行除錯的 Hey, Scripting Guy! 系列博文(共兩部分):
測試新功能並提供反饋
我們鼓勵你儘可能嘗試預釋出版本。當有預釋出版本可用時,可以透過點選市場中的切換到預釋出版本按鈕來安裝。你可以通過出現的切換到釋出版本按鈕切換回擴充套件的穩定版本。你還可以使用解除安裝按鈕旁邊的箭頭並選擇安裝另一個版本...來降級到擴充套件的其他版本。
如果你發現了一個 bug,請提交一個 issue,並在我們修復它的期間恢復到穩定版本。