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