我在用着Visual Studio 代码编写我的 PowerShell 脚本。
我已经安装了ms-vscode.powershell
适用于 Visual Studio Code 的 PowerShell 扩展。
每当我在脚本中使用别名时,它PSScriptAnalyzer
都会告诉我使用完整的 CmdLet 名称。这有点烦人,因为它还会用绿色曲线标记所有别名。
我怎样才能禁用此功能?
答案1
有三种方法可以做到这一点。
选项 1 - 使用搜索功能
- 在 Visual Studio Code 中按 F1 以显示搜索栏
- 写下
>PowerShell: Select PS
然后选择PowerShell: Select PSScriptAnalyzer Rules
- 删除勾选
PSAvoidUsingCmdletAliases
- 点击
Confirm
图片:
选项 2 - 完全禁用 ScriptAnalysis
- 单击 Visual Studio Code 左下角的齿轮图标
- 点击设置
- 点击
{}
右上角的符号 "powershell.scriptAnalysis.enable": false
在右侧添加到您的用户设置(见下面的屏幕截图)。- 点击保存您的用户设置
CTRL + S
截屏:
您的脚本分析器现已禁用,并且不会再抱怨别名。
选项 3 - 创建设置文件并仅禁用别名信息
- 在文件系统上创建一个 .psd1 文件。将下面的模板复制到此文件中并保存。
- 按照选项 2 第 1 点至第 3 点所述,转到 VSCode 中的 UserSettings。
- 添加
"powershell.scriptAnalysis.settingsPath": "C:\\foo\\bar\\FileName.psd1"
并保存
这是它的一张图片:
模板(取自https://github.com/PowerShell/vscode-powershell/blob/main/examples/PSScriptAnalyzerSettings.psd1):
@{
# Only diagnostic records of the specified severity will be generated.
# Uncomment the following line if you only want Errors and Warnings but
# not Information diagnostic records.
# Severity = @('Error','Warning')
# Analyze **only** the following rules. Use IncludeRules when you want
# to invoke only a small subset of the defualt rules.
<#
IncludeRules = @('PSAvoidDefaultValueSwitchParameter',
'PSMisleadingBacktick',
'PSMissingModuleManifestField',
'PSReservedCmdletChar',
'PSReservedParams',
'PSShouldProcess',
'PSUseApprovedVerbs',
'PSUseDeclaredVarsMoreThanAssigments')
#>
# Do not analyze the following rules. Use ExcludeRules when you have
# commented out the IncludeRules settings above and want to include all
# the default rules except for those you exclude below.
# Note: if a rule is in both IncludeRules and ExcludeRules, the rule
# will be excluded.
ExcludeRules = @('PSAvoidUsingCmdletAliases','PSAvoidUsingWriteHost')
}