Aprender o Operador Diferente no PowerShell com Exemplos

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 do que a maioria das linguagens de programação.

No entanto, uma vez que você entenda a sintaxe do operador do PowerShell, verá que não é difícil de usar. Um dos operadores mais comuns que você usará no PowerShell é o operador de Não Igual (-ne). Este operador permite testar se dois valores não são iguais entre si.

Neste artigo, você aprenderá sobre o operador de Não Igual do PowerShell e como usá-lo com exemplos.

Pré-requisitos

Este tutorial será uma demonstração prática. Se você quiser acompanhar, certifique-se de ter um sistema com o PowerShell instalado. Este tutorial utiliza o Windows 10 e o PowerShell 7.

Usando o Operador de Não Igual do PowerShell (Básico)

Em suma, o operador de Não Igual do PowerShell (-ne) determina se o valor de dois objetos não é igual 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ê usa o operador de Não Igual do PowerShell? As seções seguintes ensinarão os fundamentos do operador de Não Igual do PowerShell.

Comparando Variáveis

Um dos usos mais comuns do operador Not Equal no PowerShell é comparar duas variáveis. Por exemplo, suponha que você tenha duas variáveis, $a e $b, e queira verificar se elas são iguais. A sintaxe da comparação é a seguinte:

$a -ne $b

Se os valores de $a e $b não forem iguais, esta comparação retornará True. Caso contrário, retornará Falso.

1. Execute os seguintes comandos no console do 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.

Atribua a $c e $d o mesmo valor para ver como o operador Not Equal do PowerShell funciona com valores iguais.

$a = 1
$b = 2
$c = 3
$d = 3

2. Agora, faça a comparação Not Equal no PowerShell para ver se os valores de $a e $b não são iguais.

$a -ne $b

O resultado retorna True porque o valor de $a é 1 e o de $b é 2, que não são iguais.

You will see a False output return, as shown in the image below, since the values of $c and $d are equal (3=3). variables with not equal values

3. Agora, compare as variáveis $c e $d para ver se também não são iguais.

$c -ne $d

Você verá uma saída False, como mostrado na imagem abaixo, já que os valores de $c e $d são iguais (3=3).

Comparing variables with equal values

Comparando Valores

Ao trabalhar com o 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 Not Equal do PowerShell.

Por exemplo, o comando abaixo compara dois valores diretamente usando o operador Not Equal do PowerShell.

5 -ne 3

Você verá um retorno de valor True, como mostrado abaixo, já que os valores não são iguais.

Comparing different values using the PowerShell not equal operator

Por outro lado, comparar valores iguais retornará Falso.

5 -ne 5
Comparing equal values using the PowerShell not equal operator

Removendo um Valor do Array

O operador PowerShell Diferente de retorna um resultado booleano para indicar se dois valores não são iguais. Além dessa função, este 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.

# Criar um array contendo números de 1 a 5.
$numbers = 1..5
# Exibir o array
$numbers
Storing an array

Em seguida, execute o comando abaixo para retornar o array exceto um número (4).

$numbers -ne 4

E agora você pode ver que o comando retornou todos os números no array exceto o número 4.

Filtering an array

Comparando Strings

Além de números, você também pode aplicar a comparação de Diferente de no PowerShell em strings.

1. Por exemplo, suponha que você tenha duas strings, “Olá” e “Mundo”. Para determinar se as duas strings não são iguais, execute o comando abaixo.

"Hello" -ne "World"

O resultado é Verdadeiro, pois “Olá” não é igual a “Mundo”.

Comparing unequal stings

2. Agora compare as strings “Olá” e “olá” para ver se são iguais.

"Hello" -ne "hello"

Então você verá que o resultado é Falso porque “Olá” é igual a “olá”.

Comparing two strings

3. O operador PowerShell Not Equal não diferencia maiúsculas de minúsculas. Como pode ver no passo anterior, “Hello” é igual a “hello”. Mas se precisar de sensibilidade a maiúsculas e minúsculas ao comparar valores de string, substitua o operador -ne pelo operador -cne, que significa Case Sensitive Not Equal.

"Hello" -cne "hello"

Como resultado, “Hello” e “hello” já não são iguais de acordo com o PowerShell.

“Hello” and “hello”

Usando o Operador PowerShell Not Equal no Mundo Real (Exemplos)

Agora que compreende o conceito básico do operador PowerShell Not Equal, as seguintes seções permitir-lhe-ão experimentar alguns dos seus usos no mundo real.

Monitorizando o Estado 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.

Get-Service

Pode ver todos os serviços parados e em execução no resultado abaixo.

Display all services

Agora, para filtrar apenas os serviços que não estão Em execução, execute o comando abaixo e aplique o operador -ne da seguinte forma.

Get-Service | Where-Object {$_.Status -ne "Running"}

Como pode ver abaixo, a coluna de Estado mostra apenas os serviços Parados após aplicar a comparação Not Equal do PowerShell.

Filtering non-running services

Da mesma forma, execute o comando abaixo para retornar os serviços cujo Estado Não é Parado.

Get-Service | Where-Object {$_.Status -ne "Stopped"}

Desta vez, apenas verá os serviços que estão em execução.

Showing all running services

Combinando o PowerShell Not Equal com o Operador AND

Além de realizar uma comparação 1:1, você pode combinar a condição Not Equal 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 atender a várias 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 atender a todas as condições.

Get-Service | 
Where-Object {$_.Status -ne "Running" -and $_.StartType -eq "Automatic"} |
Select-Object Status,StartType,Name

Agora você pode ver os serviços automáticos que não estão em execução, o que pode ajudar a decidir quais ações você deve tomar.

PowerShell Not Equal match all conditions

Adicionando Lógica Condicional If/Else

Você também pode usar o operador Not Equal do PowerShell dentro das declarações condicionais, como a declaração if/else.

Por exemplo, um serviço deve estar em execução na maioria dos casos se o valor do 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.

Nota: A linha Start-Service $_.Name está comentada e não será executada. Descomente esta linha se desejar executar o comando.

Copie o código abaixo e execute-o no PowerShell.

Get-Service -ErrorAction SilentlyContinue | ForEach-Object {
    if ($_.Status -ne 'Running' -and $_.StartType -eq 'Automatic') {
        "The service [$($_.Name)] StartType is [$($_.StartType)] but its current Status is [$($_.Status)]"
        # Iniciar-Serviço $_.Nome
    }
}

O resultado mostra quais serviços automáticos não estão em execução.

Using PowerShell Not Equal in Conditional Logic

Conclusão

Neste artigo, você aprendeu sobre o operador de Não Igual no 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 de Não Igual 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 múltiplos operadores para testar condições mais complexas.

Source:
https://adamtheautomator.com/powershell-not-equal/