Powershell 如果要查看相关规则,请确保在顶部的“确认”菜单项上按Enter键,否则您的更改将不会生效

Powershell 如果要查看相关规则,请确保在顶部的“确认”菜单项上按Enter键,否则您的更改将不会生效,powershell,static-analysis,Powershell,Static Analysis,自2019.11.0版起,这些选择不会被保留,只会在当前会话中被记住-请参阅 请注意,PSSA还提供PowerShell代码Alt-Shift-F的自动重新格式化,或通过命令选项板>格式化文档 独立使用: 从PowerShell库安装PSScript Analyzer模块;e、 g: 安装模块-作用域CurrentUser PSScript Analyzer 该模块附带以下cmdlet: ... lints脚本文件。 ... 重新格式化作为字符串传递的代码。 ... 列出标准和可选的自定义分析器

自2019.11.0版起,这些选择不会被保留,只会在当前会话中被记住-请参阅

请注意,PSSA还提供PowerShell代码Alt-Shift-F的自动重新格式化,或通过命令选项板>格式化文档

独立使用: 从PowerShell库安装PSScript Analyzer模块;e、 g:

安装模块-作用域CurrentUser PSScript Analyzer

该模块附带以下cmdlet:

... lints脚本文件。 ... 重新格式化作为字符串传递的代码。 ... 列出标准和可选的自定义分析器规则。 将脚本的路径传递给Invoke-ScriptAnalyzer cmdlet以执行linting

使用您的代码,您会看到以下输出被赋予了一个名为pg.ps1的脚本:

RuleName严重性ScriptName行消息 ---- ---- ------ ---- PSPossibleIncorrectionaForDirecti警告pg.ps1 1您的意思是使用重定向运算符“>”?这个 PowerShell中的运算符比较运算符“-gt”大于 或“-ge”大于或等于。 PSPossibleIncorrectComparisonWithNu警告pg.ps1 1$null应位于相等比较的左侧。 陆上通信线 PSUseDeclaredVarsMoreThanAssignment警告pg.ps1 2已分配变量“templID”,但从未使用过。 s PSAOidUsingWriteHost警告pg.ps1 3文件“pg.ps1”使用写入主机。避免使用写主机 因为它可能无法在所有主机中工作,所以在 没有主机,并且PS5.0之前的版本不能使用 抑制、捕获或重定向。相反,使用 写入输出、写入详细信息或写入信息。
我在VS代码中安装了它,powershell.scriptAnalysis.enable:true;它报告“没有问题”。但是,将“-ne”更改为!=显示了一个问题。@un CharlieH:有意思-您使用的代码与您的问题中的代码完全相同吗?我肯定在VSCode 1.39.2中看到警告re>,最新的PowerShell扩展2019.9.0及其捆绑的PSScript Analyzer 1.18.3I安装了PS 6.1,VS Code会自动使用它。我切换到PS5.1,现在就看到了!谢谢你指点方向。@uncharlieh:很高兴听到这个消息;我也看到了最新6.x核心版本6.2.3I的警告,我已经在VS代码中安装了它,powershell.scriptAnalysis.enable:true;它报告“没有问题”。但是,将“-ne”更改为!=显示了一个问题。@un CharlieH:有意思-您使用的代码与您的问题中的代码完全相同吗?我肯定在VSCode 1.39.2中看到警告re>,最新的PowerShell扩展2019.9.0及其捆绑的PSScript Analyzer 1.18.3I安装了PS 6.1,VS Code会自动使用它。我切换到PS5.1,现在就看到了!谢谢你指点方向。@uncharlieh:很高兴听到这个消息;我也看到了最新6.x核心版本6.2.3的警告
if ($templList -ne $null -and $templList.items.Length > 0) {
  $templID=$templList.items[0].id
  write-host $templList.items
}