Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
úroveň závažnosti : Informace
Popis
Toto pravidlo detekuje, kdy podmíněné příkazy používají === nebo místo PowerShell equality operátoru (-eq). Pravidlo hledá použití a === operátorů uvnitř if, elseif, while, a do-while tvrzení. V PowerShellu představuje =operátor přiřazení a -eqpředstavuje operátor porovnání rovnosti.
V mnoha programovacích jazycích představuje == operátor porovnání rovnosti. Když definujete == v PowerShell výrazu, včetně podmíněných příkazů, PowerShell zobrazí chybu, protože == není platná PowerShell syntaxe. Toto pravidlo vždy označuje použití v == podmíněných výrocích. Nicméně neoznačuje použití , = když pravá strana podmíněné funkce používá příkazy nebo výrazy.
V těchto případech je pravděpodobné, že použití operátoru přiřazení je záměrné. Tato konstrukce se často používá k stručnému přiřazení hodnoty proměnné nebo vlastnosti na levé straně a ověření , zda přiřazená hodnota odpovídá pravdivosti.
Implicitní potlačení pomocí stylu jazyka Clang
Existují vzácné případy, kdy je přiřazení proměnné uvnitř if tvrzení záměrné.
Místo potlačování pravidla můžete naznačit, že úkol je záměrný, tím, že výraz zabalíte do dalších závorek. Výjimka platí, když $null se používá na levé straně, protože pro ni není vhodné použití. Příklad:
if (($shortVariableName = $SuperLongVariableName['SpecialItem']['AnotherItem'])) {
...
}
Příklad
Nesplňující
if ($a = $b)
{
...
}
if ($a == $b)
{
}
Kompatibilní
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
}