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 4: PowerShell -NotLike
Exemplo 3: O Comparador -Match em vez de -Like
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.
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.
0 comentários