Introdução aos exemplos do PowerShell de -Like e -NotLike

Nesta página explicarei como filtrar dados com o -Comparador PowerShell do -Like.

Um dia quis criar um script WMI usando o adaptador de rede, mas mesmo usando o PowerShell não consegui encontrar as propriedades certas, por isso voltei ao básico e listei todos os cmdlets contendo o ‘Adaptador’.

Tópicos para PowerShell -Like Operator

  • Diferenças entre -Like e -Match
  • Exemplo 1: PowerShell’s -Like Comparator
  • Exemplo 2: Double Wildcards -Match *Adaptador*
  • Exemplo 3: O Comparador -Match em vez de -Like

  • Exemplo 4: PowerShell -NotLike

Diferenças entre -Like e -Match

Em resumo, se estiver a pensar, ‘provavelmente vou precisar de um wildcard para encontrar este item’, então comece por -Like. No entanto, se estiver bastante seguro da maioria das letras da palavra que procura, então é melhor experimentar com -Match.

Aqui está uma distinção mais técnica: -Match é uma expressão regular, enquanto -Like é apenas uma comparação de wildcard, um subconjunto de -Match.

Exemplo 1: PowerShell’s -Like Comparator

Este exemplo apenas lista aqueles cmdlets que terminam com as letras ‘adaptador’.

# PowerShell -Like Operator# Author: Guy Thomas# Version September 2011 tested on PowerShell v 2.0Clear-HostGet-WmiObject -List | Where-Object {$_.name -Like "*Adapter"}

Learning Points

Nota 1: Observe como Get-WmiObject utiliza o parâmetro -Lista.

Nota 2: A maioria dos scripts de comparação são introduzidos com Where-Object, seguido da construção do gasoduto: $_.

Guy Recomenda: Monitor WMI gratuito para PowerShell (FREE TOOL)

Windows Management Instrumentation (WMI) é um dos tesouros escondidos dos sistemas operativos da Microsoft. Felizmente, o SolarWinds criou um Monitor WMI gratuito para PowerShell para que possa descobrir estas preciosidades de informação de desempenho, e assim melhorar os seus scripts PowerShell.

Tirar as conjecturas de quais contadores WMI para usar ao scriptar o sistema operativo, Active Directory, ou Exchange Server. Experimente este monitor WMI – é grátis.

SolarWinds WMI Monitor Descarregar Ferramenta 100% Grátis

Exemplo 2: Double Wildcards -Match *Adaptador*

O problema com o Exemplo 1 é que suspeito que existem mais cmdlets contendo a palavra Adaptador, por exemplo ‘adaptador’ talvez no meio do nome da classe WMI.

# PowerShell example to demonstrate -Like# Author: Guy Thomas# Version September 2011 tested on PowerShell v 2.0Clear-HostGet-WmiObject -List | Where-Object {$_.name -Like "*Adapter*"}

Pontos de aprendizagem

Nota 3: Mais uma vez, aperceba-se da importância da construção $_. Dólar, sublinhe-se. O ponto significa “neste fluxo de dados”.

Nota 4: Graças ao segundo *, o Exemplo 2 deve retornar mais cmdlets.

Ver mais PowerShell -Match examples.

Exemplo 3: O -Match Comparator em vez de -Like

Gosto de ser flexível com os comparadores PowerShell, se os resultados não forem como eu previ, então posso tentar uma alternativa tal como -Match ou -Contenha.

# PowerShell example to check with -Match# Author: Guy Thomas# Version September 2011 tested on PowerShell v 2.0Clear-HostGet-WmiObject -List | Where-Object {$_.name -Match "Adapter"}

Pontos de aprendizagem

Nota 5: Na verdade este exemplo deve listar as mesmas classes WMI como Exemplo 2, mas em outros scripts pode obter melhores resultados usando -Match em vez de -Like.

Ver também PowerShell’s -Match “

Guy Recomenda: Network Performance Monitor (FREE TRIAL)

SolarWinds Network Performance Monitor (NPM) irá ajudá-lo a descobrir o que está a acontecer na sua rede. Este utilitário também o guiará na resolução de problemas; o painel de controlo indicará se a causa principal é uma ligação quebrada, equipamento defeituoso ou sobrecarga de recursos.

O que mais gosto é a forma como o NPM sugere soluções para problemas de rede. Tem também a capacidade de monitorizar a saúde das máquinas virtuais individuais VMware. Se estiver interessado em resolver problemas, e criar mapas de rede, então recomendo que experimente o NPM num teste gratuito de 30 dias.

SolarWinds Network Performance Monitor Download 30-day FREE Trial

Example 4: More Comparators -NotLike

Time para uma recapitulação: O comparador mais simples é ‘igual’, e a forma como se codifica isto em PowerShell com -eq (não =). Contudo, nestes exemplos, -eq não seria eficaz, porque realisticamente teria de saber a resposta antes de poder fazer a pergunta!

Gostaria de aproveitar esta oportunidade para examinar outros comparadores. É surpreendente a frequência com que o operador -nãoLike negativo produz uma boa solução para um problema de scripting. Por exemplo, existem vários WmiObjects que começam com CIM, uma forma de os excluir seria não gostar de “CIM*”.

Outras vezes, utilizando múltiplos critérios no filtro, pode afinar a saída, para atingir o meu objectivo, adicionei ‘-E’. Se por qualquer razão -E não se lembrar disto, ao anexar um segundo comparador o segredo é adicionar outra instância do comparador ($_.name) depois do -And.

# PowerShell example to list demonstrate -NotLike with -And# Author: Guy Thomas# Version September tested on PowerShell v 2Clear-Host$WMI = Get-WmiObject -List `| where-Object {$_.name -NotLike "CIM*" -And $_.name -NotLike "__*"}$WMIWrite-Host `n $WMI.count "WMI objects not contain CIM or __"

Learning Points

Nota 6: A minha missão é sempre pô-lo a trabalhar. Agora acabou para si; experimente com diferentes filtros, substitua as suas ideias por “CIM”, e “__”. Talvez o melhor de tudo seria combinar -NotLike e -Like.

Nota 7: Adicionei código para contar o número de classes WMI, isto ajuda a ver que variação do meu script devolve o maior número de itens.

Follow-up

Como é habitual com os meus scripts, a missão é pô-lo a começar. Se quiser saber mais sobre -Match, -Like e os seus familiares, então comece com a ajuda do próprio PowerShell assim:
Get-Help about_comparison_operators. (Ou tente Get-Help about*)

Estes ficheiros de ajuda introduzem todo um mundo de termos específicos, por exemplo, ‘comparações de expressões regulares’ e ‘comparação de wildcard’. Assim que precisar e compreender tal informação extra, então eu tive sucesso na minha missão de vos apresentar -Match e -Like.

p>Ver mais sobre PowerShell Comparison Operators “

Resumo de PowerShell -Like Operator

Por isso, muitas vezes sofremos de sobrecarga de informação. Trabalhar com PowerShell não é diferente, contudo fornece três operadores condicionais para filtrar a sua informação: -Match, -Like e -Contenha. Cada operador tem propriedades diferentes; com a pesquisa, pode obter apenas o filtro de que necessita, e assim filtrar o fluxo de informação desejado na saída do seu script.

p> Se gostar desta página, por favor partilhe-a com os seus amigos

Veja mais exemplos de controlo de fluxo do PowerShell do Windows

– Declaração do PowerShell Switch – PowerShell Real Life Techniques – Free Permissions Analyzer

– Diferenças entre For, ForEach e ForEach-Object – PowerShell Loops – PowerShell Home

– Operadores Condicionais – Do While Loop – PowerShell If Statement – PowerShell Suportes de PowerShell

Por favor, envie-me um e-mail se tiver um script de exemplo melhor. Também, por favor, reporte quaisquer erros factuais, erros gramaticais ou links quebrados, terei todo o prazer em corrigir a falha.

Categorias: Articles

0 comentários

Deixe uma resposta

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