TÓPICO
about_Comparison_Operators
DESCRIÇÃO RESUMIDA
Descreve os operadores que comparam valores no Windows PowerShell.
DESCRIÇÃO LONGA
Os operadores de comparação permitem que você especifique
condições para comparar valores e localizar valores que
correspondem a padrões especificados. Para usar um operador de
comparação, especifique os valores que deseja comparar juntamente
com um operador que separe esses valores.
Por padrão, todos os operadores de comparação não diferenciam
maiúsculas de minúsculas. Para tornar um operador de comparação
capaz de diferenciar maiúsculas de minúsculas, coloque "c" antes
do nome do operador.Por exemplo, a versão de "-eq" que diferencia
maiúsculas de minúsculas é "-ceq". Para tornar explícita a
incapacidade de diferenciar maiúsculas de minúsculas, coloque "i"
antes do operador. Por exemplo, a versão de "-eq" que explicitamente
não diferencia maiúsculas de minúsculas é "ieq".
Todos os operadores de comparação, com exceção dos operadores de
confinamento (-contains, -notcontains) e de tipo (-is, -isnot)
retornam um valor booleano quando a entrada do operador (o valor
no lado esquerdo dele) é um valor único (um escalar). Quando a
entrada é um conjunto de valores, os operadores de confinamento e os
operadores de tipo retornam qualquer valor correspondente. Se não houver
correspondências em um conjunto, esses operadores não retornam nada.
Os operadores de confinamento e operadores de tipo sempre retornam um
valor booleano.
O Windows PowerShell oferece suporte aos seguintes operadores de
comparação.
-eq
Descrição: igual a. Inclui um valor idêntico.
Exemplo:
C:\PS> "abc", "def" -eq "abc"
abc
-ne
Descrição: diferente de. Inclui um valor diferente.
Exemplo:
C:\PS> "abc", "def" -ne "abc"
def
-gt
Descrição: maior que.
Exemplo:
C:\PS> 8 -gt 6
True
-ge
Descrição: maior ou igual a.
Exemplo:
C:\PS> 8 -ge 8
True
-lt
Descrição: menor que.
Exemplo:
C:\PS> 8 -lt 6
False
-le
Descrição: menor ou igual a.
Exemplo:
C:\PS> 6 -le 8
True
-like
Descrição: fazer correspondência usando o caractere curinga (*).
Exemplo:
C:\PS> "Windows PowerShell" -like "*shell"
True
-notlike
Descrição: não fazer correspondência usando o caractere curinga (*).
Exemplo:
C:\PS> "Windows PowerShell" -notlike "*shell"
False
-match
Descrição: faz a correspondência de uma cadeia de caracteres usando
expressões regulares. Quando a entrada é escalar, a variável
automática $Matches é preenchida.
Exemplo:
C:\PS> "Domingo" -match "dom"
True
C:\PS> $matches
Nome Valor
---- -----
0 dom
-notmatch
Descrição: não corresponde a uma cadeia de caracteres. Usa
expressões regulares.
Quando a entrada é escalar, a variável automática
$Matches é preenchida.
Exemplo:
C:\PS> "Domingo" -notmatch "dom"
False
C:\PS> $matches
Nome Valor
---- -----
0 dom
-contains
Descrição: operador de confinamento. Inclui um valor idêntico
que não faz parte de um valor. Sempre retorna um valor booleano.
Exemplo:
C:PS> "abc", "def" -contains "def"
True
-notcontains
Descrição: operador de confinamento. Não inclui um valor
idêntico. Sempre retorna um valor booleano.
Exemplo:
C:PS> "Windows", "PowerShell" -notcontains "Shell"
True
-replace
Descrição: operador de substituição. Altera os elementos
especificados de um valor.
Exemplo:
C:\PS> "Get-Process" -replace "Get", "Stop"
Stop-Process
Operadores de igualdade
Os operadores de igualdade (-eq, -ne) retornam um valor igual a
TRUE ou as correspondências quando um ou mais valores de entrada são
idênticos ao padrão especificado. O padrão inteiro deve corresponder
a um valor inteiro.
Os exemplos a seguir mostram o efeito do operador de igualdade:
C:PS> 1,2,3 -eq 2
2
C:PS> "PowerShell" -eq "Shell"
False
C:PS> "Windows", "PowerShell" -eq "Shell"
C:PS>
C:\PS> "abc", "def", "123" -eq "def"
def
Operadores de confinamento
Os operadores de confinamento (-contains e -notcontains) são
semelhantes aos operadores de igualdade. No entanto, os
operadores de confinamento sempre retornam um valor booleano,
mesmo que a entrada seja um conjunto.
Além disso, ao contrário dos operadores de igualdade, os
operadores de confinamento retornam um valor assim que detectam
a primeira correspondência. Os operadores de igualdade avaliam
todas as entradas e retornam todas as correspondências no conjunto.
Os exemplos a seguir mostram o efeito do operador -contains:
C:PS> 1,2,3 -contains 2
True
C:PS> "PowerShell" -contains "Shell"
False
C:PS> "Windows", "PowerShell" -contains "Shell"
False
C:\PS> "abc", "def", "123" -contains "def"
True
C:\PS> "verdadeiro", "azul", "seis" -contains "verdadeiro"
True
O exemplo a seguir mostra como os operadores de confinamento
diferem do operador igual a. Os operadores de confinamento
retornam um valor igual a TRUE na primeira correspondência.
C:\PS> 1,2,3,4,5,4,3,2,1 -eq 2
2
2
C:\PS> 1,2,3,4,5,4,3,2,1 -contains 2
True
Em um conjunto muito grande, o operador -contains retorna
resultados mais rápido do que o operador igual a.
Operadores de correspondência
Os operadores de correspondência (-match e -notmatch) localizam
elementos que correspondem ou não a um padrão especificado
usando expressões regulares.
A sintaxe é:
<string[]> -match <expressão-regular>
<string[]> -notmatch <expressão-regular>
Os exemplos a seguir mostram alguns usos do operador -match:
C:\PS> "Windows", "PowerShell" -match ".shell"
PowerShell
C:\PS> (get-command get-member -syntax) -match "-view"
True
C:\PS> (get-command get-member -syntax) -notmatch "-path"
True
C:\PS> (get-content servers.txt) -match "^Servidor\d\d"
Server01
Server02
Os operadores de correspondência só pesquisam em cadeias de
caracteres. Eles não podem pesquisar em matrizes de inteiros ou
outros objetos.
Os operadores -match e -notmatch populam a variável automática
$Matches quando a entrada (o argumento do lado esquerdo) do
operador é um objeto escalar único. Quando a entrada é escalar, os
operadores -match e notmatch retornam um valor booleano e definem o
valor da variável automática $Matches para os componentes que
correspondem ao argumento.
Se a entrada for um conjunto, os operadores -match e -notmatch
retornam os membros correspondentes desse conjunto, mas o
operador não popula a variável $Matches.
Por exemplo, o comando a seguir envia um conjunto de cadeias de
caracteres para o operador -match. O operador -match retorna os
itens no conjunto que são correspondentes. Ele não popula a variável
automática $Matches.
C:\PS> "Domingo", "Segunda", "Terça" -match "dom"
Domingo
C:\PS> $matches
C:\PS>
Por outro lado, o comando a seguir envia uma única cadeia de
caracteres para o operador -match. O operador -match retorna um
valor booleano e popula a variável automática $Matches.
C:\PS> "Domingo" -match "dom"
True
C:\PS> $matches
Nome Valor
---- -----
0 Dom
O operador -match popula a variável automática $Matches quando
a entrada é escalar e o resultado é False, ou seja, quando
detecta uma correspondência.
C:\PS> "Domingo" -notmatch "com"
True
C:\PS> $matches
C:\PS>
C:\PS> "Domingo" -notmatch "min"
False
C:\PS> $matches
C:\PS>
Nome Valor
---- -----
0 min
Operador de substituição
O operador -replace substitui um valor inteiro ou em parte pelo
valor especificado usando expressões regulares. Você pode usar
o operador -replace para muitas tarefas administrativas, como
renomear arquivos. Por exemplo, o comando a seguir altera as
extensões de nome de arquivo de todos os arquivos .gif para .jpg:
Get-ChildItem | Rename-Item -NewName { $_ -replace '.gif$','.jpg$' }
A sintaxe do operador -replace é descrita a seguir. O espaço
reservado <original> representa os caracteres a serem
substituídos, e o espaço reservado <substituto> representa os
caracteres que os
substituirão:
<entrada> <operador> <original>, <substituto>
Por padrão, o operador -replace não diferencia maiúsculas de
minúsculas. Para torná-lo capaz diferenciar maiúsculas de
minúsculas, use -creplace. Para torná-lo incapaz de diferenciar
maiúsculas de minúsculas explicitamente, use ireplace. Veja os
seguintes exemplos:
C:\PS> "book" -replace "B", "C"
Cook
C:\PS> "book" -ireplace "B", "C"
Cook
C:\PS> "book" -creplace "B", "C"
book
Operadores bit a bit
O Windows PowerShell fornece suporte aos operadores bit a bit
padrão, como os operadores AND bit a bit (-band) e OR bit a bit
inclusivo e exclusivo (-bor e -bxor). Desde o Windows
PowerShell 2.0, todos os operadores bit a bit funcionam com
inteiros de 64 bits.
O Windows PowerShell oferece suporte aos seguintes operadores
bit a bit.
Operador Descrição Exemplo
-------- ---------------------- -------------------
-band AND bit a bit C:\PS> 10 -band 3
2
-bor OR bit a bit (inclusivo) C:\PS> 10 -bor 3
11
-bxor OR bit a bit (exclusivo) C:\PS> 10 -bxor 3
9
Os operadores bit a bit atuam no formato binário de um valor.
Por exemplo, a estrutura de bits do número 10 é 00001010 (com
base em 1 byte) e a estrutura de bits do número 3 é 00000011.
Quando você usa um operador bit a bit para comparar 10 com 3,
os bits individuais em cada byte são comparados.
Em uma operação AND bit a bit, o bit resultante é definido como
1 apenas quando ambos os bits de entrada são 1.
00001010 (10)
00000011 ( 3)
------------------ bAND
00000010 ( 2)
Em uma operação OR bit a bit (inclusivo), o bit resultante é
definido como 1 quando um ou ambos os bits de entrada equivalem
a 1. O bit resultante só é definido como 0 quando ambos os bits
de entrada são definidos como 0.
00001010 (10)
00000011 ( 3)
------------------ bOR (inclusivo)
00001011 (11)
Em uma operação OR bit a bit (exclusivo), o bit resultante é
definido como 1 apenas quando um bit de entrada é igual a 1.
00001010 (10)
00000011 ( 3)
------------------ bXOR (exclusivo)
00001001 ( 9)
CONSULTE TAMBÉM
about_Operators
about_Regular_Expressions
about_Wildcards
Compare-Object