Visual Studio Code 中的 PowerShell
PowerShell 是一种基于任务的命令行 shell 和脚本语言,构建于 .NET 之上,为任何平台上的管理员提供强大的工具集。
微软为 Visual Studio Code (VS Code) 开发的 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 上,我们还在启用和未启用约束语言模式的情况下进行测试。
安装 PowerShell 扩展
可以从 Visual Studio Code 市场通过点击安装按钮来安装 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) 命令或通过 "workbench.settings.editor"
设置更改默认设置编辑器来打开 settings.json
文件。
有关配置 VS Code 设置的更多信息,请转到用户和工作区设置。
Types.ps1xml 和 Format.ps1xml 文件
PowerShell .ps1xml
文件用于扩展类型系统和定义输出格式。有关这些文件的更多信息,请参阅 PowerShell 官方文档中的 Types.ps1xml 和 Format.ps1xml。您可以通过安装 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 模式。配置这些模式可在 ps1xml
文件中启用以下功能
- 语法错误报告
- 模式验证
- 标签和属性补全
- 自动闭合标签
- 符号高亮
- 文档折叠
- 文档符号和大纲
- 重命名支持
- 文档格式化
示例脚本
示例脚本包含在扩展中,可以在以下路径找到。
~/.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!”博客系列的两部分文章
测试新功能并提供反馈
我们鼓励您尽可能尝试预发布版本。当有预发布版本可用时,可以通过点击市场中的切换到预发布版本按钮进行安装。您可以通过出现的切换到发布版本按钮切换回扩展的稳定版本。您还可以使用卸载按钮旁边的箭头并选择安装另一个版本...来降级到扩展的其他版本。
如果您发现错误,请提出问题,并在我们修复期间恢复到稳定版本。