você Está lutando com a compreensão PowerShell operadores de comparação, como eq ne ceq e cne. Em caso afirmativo, continue a ler.vindo de um fundo de desenvolvimento de software, a primeira instância em que tive um “Huh?”momento foi quando eu vi pela primeira vez PowerShell os operadores de comparação eq ceq cne, etc., Todas as outras línguas têm operadores de comparação, mas não muito como PowerShell. I was used to ==and<>.

não só a sintaxe parece completamente diferente da sua linguagem de programação típica, como também se comportam de forma diferente ao comparar colecções de valores.

é algo que realmente me pendurou ao aprender sobre PowerShell, mas agora parece que o velho adágio de cerveja; é um gosto adquirido.,vamos rever brevemente o que é um operador de comparação se não estiver familiarizado e mergulhar mais fundo nas nuances que o PowerShell introduz. Em breve, você será capaz de manejar operadores em seus scripts PowerShell sem problemas.

Como eu mencionei, todas as linguagens de programação / scripting têm operadores de comparação. No seu sentido mais básico, os operadores de comparação são necessários para avaliar como as coisas diferentes se comparam com outras coisas. Eles são usados para pegar dois objetos e ver qual é a diferença (se houver) entre esses dois objetos.,

no caso de PowerShell, os operadores também podem ser usados para encontrar elementos dentro de coleções de valores.

para este post, vou rever os operadores de igualdade e como PowerShell os usa. Estas são eq e ne com o seu caso-sensível homólogos ceq e cne. Para uma lista completa você pode saltar sobre o site Technet ou apenas usar Get-Help about_comparison_operatorsna sua consola Powershell.,

PowerShell -EQ e -CEQ

Se você precisar verificar se um objeto é igual a outro objeto que você tem para usar o eq (case-insensitive) ou ceq (sensível a maiúsculas e minúsculas) operadores. Estes operadores testam o valor de cada entidade que você gostaria de comparar.

Quando comecei a aprender PowerShell eu faria constantemente algo assim

$string = 'Adam'if ($string = 'Adam') { 'string is equal to Adam'}

em breve você será atingido o suficiente para não fazer isso. The = sign is an assign operator NOT a comparison operator., Você não pode usar o sinal = para comparar um valor com outro.

a forma correcta de o fazer é definir o valor a verificar no lado esquerdo da expressão e usar o eq operador. Aqui está um exemplo do eq e ceq operadores e como eles são usados.,

PowerShell’s eq vs ceq

Notice how eq returned a boolean True value when comparing our variable against adam but ceq returned a boolean False value? This displays the case sensitivity difference between the two operators.,

isto é bom para os valores escalares (únicos), mas você também pode encontrar todas as instâncias de valores particulares usando estes operadores também. Por exemplo, use o PowerShell operador-eq para filtrar itens em uma matriz:

Usando a Eq para pesquisa de matrizes

Se você tem uma variável com uma coleção de valores, tal como uma matriz você pode usar eq e ceq para localizar todas as instâncias de valores dentro da coleção.,

Notice that it found all of the instances of the integer 9 we tried to compare against. Estou sempre a usar este método.

-NE e -CNE

No lado oposto, já ambos ne e cne. Eles são exatamente o oposto de eq e ceq mas exibem o mesmo comportamento exato apenas oposto. Não testam a igualdade, testam a desigualdade.

PowerShells ne vs., cne

espero que isto dê uma boa explicação dos operadores de comparação de igualdade. Isso realmente me deixou pendurado como um novato e nunca realmente clicou para mim até que eu estava apenas batendo em submissão por mensagens de erro. Espero que este post previna a mesma batida para baixo que eu recebi.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *