Além de ser uma ferramenta de linha de comando, o PowerShell é uma linguagem de programação da Microsoft que permite controlar e automatizar sistemas. O PowerShell utiliza uma sintaxe diferente para seus operadores em comparação com a maioria das linguagens de programação.
No entanto, uma vez que você entenda a sintaxe dos operadores do PowerShell, verá que não é difícil de usar. Um dos operadores mais comuns que você utilizará no PowerShell é o operador Diferente de (-ne
). Este operador permite testar se dois valores não são iguais entre si.
Neste artigo, você aprenderá sobre o operador Diferente de do PowerShell e como utilizá-lo com exemplos.
Pré-requisitos
Este tutorial será uma demonstração prática. Se você quiser acompanhar, certifique-se de ter um sistema com PowerShell instalado. Este tutorial utiliza o Windows 10 e PowerShell 7.
Utilizando o Operador Diferente de do PowerShell (Básico)
Em resumo, o operador Diferente de do PowerShell (-ne
) determina se o valor de dois objetos é diferente e retorna um valor booleano com base no resultado. Se os valores não forem iguais, o resultado é True
; caso contrário, o resultado é False
.
Mas como e quando você deve usar o operador Diferente de do PowerShell? As seções seguintes ensinarão o básico do operador Diferente de do PowerShell.
Comparando Variáveis
Uma das utilizações mais comuns para o operador de Diferente do PowerShell é comparar duas variáveis. Por exemplo, suponha que você tenha duas variáveis, $a
e $b
, e queira ver se elas são iguais. A sintaxe de comparação é a seguinte:
Se os valores de $a
e $b
não forem iguais, então essa comparação retornará True
. Caso contrário, retornará False.
1. Execute os seguintes comandos em seu console PowerShell para criar as variáveis que você usará como exemplos. As variáveis $a, $b, $c e $d representam valores diferentes. Você pode comparar cada um desses valores para testar se são iguais ou não.
Você atribui o mesmo valor a $c e $d para ver como o operador de Diferente do PowerShell funciona com valores iguais.
2. Agora, execute a comparação de Diferente do PowerShell para ver se os valores de $a e $b não são iguais.
O resultado retorna True porque o valor de $a é 1, e $b é 2, que não são iguais.

3. Agora compare as variáveis $c e $d para ver se elas também não são iguais.
Você verá um retorno de saída False, como mostrado na imagem abaixo, já que os valores de $c e $d são iguais (3=3).

Comparando Valores
Ao trabalhar com PowerShell, nem todos os objetos que você deseja comparar estão em variáveis. Nesse caso, você pode comparar diretamente os valores com o operador de Diferente do PowerShell.
Por exemplo, o comando abaixo compara dois valores diretamente usando o operador de Diferente do PowerShell.
Você verá um retorno de valor True, como mostrado abaixo, já que os valores não são iguais.

Por outro lado, comparar valores iguais retornará False
.

Removendo um Valor do Array
O operador PowerShell Not Equal retorna um resultado booleano para indicar se dois valores não são iguais. Além dessa função, esse operador também pode filtrar itens de um array.
Por exemplo, crie uma variável chamada $numbers
contendo um array de números de 1 a 5.

Em seguida, execute o comando abaixo para retornar o array, exceto um número (4
).
Agora você pode ver que o comando retornou todos os números no array, exceto o número 4.

Comparando Strings
Além de números, você também pode aplicar a comparação Not Equal do PowerShell em strings.
1. Por exemplo, suponha que você tenha duas strings, “Hello” e “World”. Para determinar se as duas strings não são iguais, execute o comando abaixo.
O resultado é True, pois “Hello” não é igual a “World”.

2. Agora, compare as strings “Hello” e “hello” para ver se são iguais.
Então você verá que o resultado é False, porque “Hello” é igual a “hello”.

3. O operador de Diferença do PowerShell não diferencia maiúsculas de minúsculas. Como pode ser visto no passo anterior, “Hello” é igual a “hello”. No entanto, se você precisar de sensibilidade a maiúsculas e minúsculas ao comparar valores de string, substitua o operador -ne pelo operador -cne, que significa Diferença Sensível a Maiúsculas.
Como resultado, “Hello” e “hello” não são mais considerados iguais no PowerShell.

Usando o Operador de Diferença no PowerShell no Mundo Real (Exemplos)
Agora que você entende o conceito básico do operador de diferença do PowerShell, as próximas seções permitirão que você experimente alguns de seus usos no mundo real.
Monitorando o Status dos Serviços
A staple of Windows systems administration is monitoring the server service status. This task involves filtering out which services whose Status Is Not Running
.
Por exemplo, execute o cmdlet Get-Service
para exibir todos os serviços na máquina local.
Você pode ver todos os serviços parados e em execução na saída abaixo.

Agora, para filtrar apenas os serviços que não estão Running
, execute o comando abaixo e aplique o operador -ne
da seguinte forma.
Como pode ser visto abaixo, a coluna de Status mostra apenas os serviços parados após aplicar a comparação de Diferença no PowerShell.

Da mesma forma, execute o comando abaixo para retornar os serviços cujo Status não é Stopped
.
Desta vez, você verá apenas os serviços em execução.

Combinando PowerShell Não Igual com o Operador AND
Além de fazer uma comparação 1:1, você pode combinar a condição de Não Igual do PowerShell com outro operador de comparação, como -eq
(igual), usando o operador -and
. Este método é útil quando o objeto que você está comparando deve satisfazer múltiplas condições.
Por exemplo, monitorar os serviços do servidor geralmente envolve garantir que todos os serviços Automáticos estejam em execução. Execute o comando abaixo para listar todos os serviços cujo Status Não Está em Execução
e cujo StartType É Automático
. Neste exemplo, o valor do objeto deve corresponder a todas as condições.
Agora você pode ver os serviços automáticos que não estão em execução, o que pode ajudá-lo a decidir quais ações deve tomar.

Adicionando Lógica Condicional If/Else
Você também pode usar o operador de Não Igual do PowerShell dentro das instruções condicionais, como a instrução if/else.
Por exemplo, um serviço deve estar em execução na maioria dos casos se o valor do seu StartType for Automático. O script abaixo obtém todos os serviços, verifica quais serviços automáticos não estão em execução e executa a(s) ação(ões) corretiva(s) – para exibir uma mensagem e iniciar o serviço.
Observação: A linha Start-Service $_.Name está comentada e não será executada. Descomente esta linha se quiser executar o comando.
Copie o código abaixo e execute-o no PowerShell.
O resultado mostra quais serviços automáticos não estão em execução.

Conclusão
Neste artigo, você aprendeu sobre o operador Diferente do PowerShell. Você também aprendeu como usá-lo com exemplos. Neste ponto, você deve ter uma boa compreensão de como ele funciona.
Com esse novo conhecimento, agora você pode usar o operador Diferente em seus scripts do PowerShell para testar condições. No entanto, tenha em mente que outros operadores de comparação também estão disponíveis. Você pode querer combinar vários operadores para testar condições mais complexas.