【发布时间】:2019-07-15 04:28:39
【问题描述】:
在这段代码中,我收到了来自 PSScriptAnalyzer 的“UseDeclaredVarsMoreThanAssignments”警告
$lastUpdate = $false;
$shouldUpdate = $false;
if (Test-Path $logfile) {
(Get-Content $logfile) | Where-Object {
$_ -match "([^-]*)->\s*UpdateCheck"
} | ForEach-Object {
$lastUpdate = $Matches[1]
}
if ($lastUpdate) {
$shouldUpdate = (Get-Date $Matches[1]) -lt ((Get-Date).AddDays(-7))
} else {
$shouldUpdate = $true;
}
}
触发警告的变量是这一行中的$lastUpdate:
$lastUpdate = $Matches[1]
尽管它被用于下一行。
这是我的代码的问题 - 我猜它与范围和 ForEach-Object 循环有关 - 还是 VSCode 中的 PSScriptAnalyzer 有问题?
【问题讨论】:
-
我为
ShouldUpdate和$LastUpdate显示了相同的错误“未使用”消息。对我来说,它看起来像一个错误。我的设置 >>> VSC = 1.36.1 & posh ext = 2019.5.0 & posh = 5.1 & os = win7x64 ///// 它也显示在我的许多其他脚本中。 -
我在问题 #1164 下报告了相同的错误,据我所知 PSScriotAnalyzer 应该排除在当前范围内运行的所有标准 cmdlet。
标签: powershell visual-studio-code scope