Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
уровень серьезности : сведения
Описание
Во многих языках программирования оператор равенства обозначается как == или =, но PowerShell использует -eq. Поэтому это может легко произойти, что неправильный оператор используется непреднамеренно. Это правило перехватывает несколько особых случаев, когда вероятность этого довольно высока.
Правило ищет использование операторов == и = внутри if, else if, while и do-while инструкций, но не предупреждает, используется ли какая-либо команда или выражение в правой части, так как это, вероятно, по проектированию.
Пример
Неправильный
if ($a = $b)
{
...
}
if ($a == $b)
{
}
Правильно
if ($a -eq $b) # Compare $a with $b
{
...
}
if ($a = Get-Something) # Only execute action if command returns something and assign result to variable
{
Do-SomethingWith $a
}
Неявное подавление с помощью стиля Clang
Существуют некоторые редкие случаи, когда назначение переменной внутри оператора if выполняется по проектированию.
Вместо подавления правила можно также сигнализировать о том, что назначение было намеренно, упаковав выражение в дополнительные скобки. Исключение для этого заключается в том, что $null используется в LHS, так как для этого нет варианта использования.
if (($shortVariableName = $SuperLongVariableName['SpecialItem']['AnotherItem']))
{
...
}