Visual Studio Code 中的 PowerShell
PowerShell是一种基于任务的命令行 shell 和脚本语言,构建于.NET之上,为任何平台上的管理员提供强大的工具集。
Visual Studio Code (VS Code) 的Microsoft PowerShell扩展提供了丰富的语言支持和功能,例如 PowerShell 的语法完成、定义跟踪和 linting。该扩展应该可以在任何 支持VS Code 本身和 PowerShell Core 7.2 或更高版本的地方工作。对于 Windows PowerShell,仅支持版本 5.1,并且仅尽力支持。PowerShell Core 6、7.0 和 7.1 已终止支持。我们测试以下配置:
- 带有 Windows PowerShell 5.1 和 PowerShell 7.2 的Windows Server 2022
- 带有 Windows PowerShell 5.1 和 PowerShell 7.2 的Windows Server 2019
- 带有 PowerShell Core 7.2 的macOS 11
- 带有 PowerShell Core 7.2 的Ubuntu 20.04
安装 PowerShell 扩展
可以通过单击“安装”按钮从 Visual Studio Code Marketplace 安装 PowerShell 扩展 。您还可以从 VS Code 中安装 PowerShell 扩展,方法是使用键盘快捷键⇧⌘X(Windows、Linux Ctrl+Shift+X)打开“扩展”视图,输入PowerShell,然后选择 PowerShell 扩展:
主要特点
- 语法高亮
- 高级内置代码片段
- 适用于 cmdlet 等的IntelliSense
- PowerShell 脚本分析器报告的问题
- 转到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 版本。
或者从命令面板运行PowerShell:显示会话菜单命令 ( ⇧⌘P (Windows、Linux Ctrl+Shift+P ) )。
代码透镜支持
CodeLenses 是 VS Code 的一项功能,用于提供源代码中显示的可操作的上下文信息。
CodeLens 的功能包括:
-
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是一个用于运行单元测试的框架,Windows PowerShell 5.1 预装了 Pester 3.40。要更新Pester或在其他平台上安装最新版本,请按照Pester 安装说明进行操作。
石膏一体化
Plaster是一个用 PowerShell 编写的基于模板的文件和项目生成器。其目的是简化 PowerShell 模块项目、Pester 测试、DSC 配置等的创建。
PowerShell 扩展允许使用 PowerShell :从命令面板中的 Plaster 模板命令创建新项目 ( ⇧⌘P (Windows、Linux Ctrl+Shift+P ) ) 创建新的 Plaster 项目。
PowerShell 扩展设置
您可以从“文件” > “首选项” > “设置”菜单项自定义 VS Code 设置。
您还可以选择位于活动栏左下角的齿轮图标。
您还可以使用键盘快捷键⌘(Windows、Linux Ctrl+、)打开设置。settings.json
您仍然可以使用“首选项:命令面板中的打开用户设置 (JSON)”命令 ( ⇧⌘P (Windows、Linux Ctrl+Shift+P ) ) 或通过使用设置更改默认设置编辑器来打开文件"workbench.settings.editor"
。
有关配置 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-<version>/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撰写的关于使用 PowerShell 扩展进行调试的两部分博客文章系列:
测试新功能并提供反馈
我们鼓励您尽可能尝试预发布版本。当 预发布版本可用时,可以使用“切换到预发布版本”按钮从市场安装它。您可以使用出现的“切换到发布版本”按钮切换回扩展的稳定版本。您还可以使用“卸载”按钮旁边的箭头并选择“安装其他版本...”降级到扩展的其他版本。
如果您发现错误,请提出问题并在我们修复它时恢复到稳定版本。