Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Nível de gravidade: de informações
Descrição
Em muitas linguagens de programação, o operador de igualdade é indicado como == ou =, mas PowerShell usa -eq. Portanto, pode acontecer facilmente que o operador errado seja usado sem querer. Esta regra captura alguns casos especiais em que a probabilidade disso é bastante alta.
A regra procura usos de operadores == e = dentro de instruções if, else if, while e do-while, mas não avisa se qualquer tipo de comando ou expressão é usado no lado direito, pois isso provavelmente é por design.
Exemplo
Errado
if ($a = $b)
{
...
}
if ($a == $b)
{
}
Correto
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
}
Supressão implícita usando o estilo Clang
Há alguns casos raros em que a atribuição de variável dentro de uma instrução if é por design.
Em vez de suprimir a regra, também é possível sinalizar que a atribuição foi intencional encapsulando a expressão em parênteses extras. Uma exceção para isso é quando $null é usado no LHS porque não há nenhum caso de uso para isso.
if (($shortVariableName = $SuperLongVariableName['SpecialItem']['AnotherItem']))
{
...
}