LA.Net
Reflexões sobre C#, .Net e programação em geral

Após alguns dias de “folga”, está na hora de cumprir o prometido, isto é, de voltar a falar acerca do Monad. Hoje vou apresentar vários aspectos relacionados com a utilização de wildcards e expressões regulares. Ambos as  opções permitem-nos executar acções contra um conjunto de itens que estão de acordo com as regras definidas através dessas opções. Vamos começar pelos wildcards.

À semelhança do que acontecia com a CMD.EXE, esta nova shell suporta o uso de wildcards. Actualmente, a shell suporta os seguintes wildcards:

  • *: representa uma correspondência a zero ou mais carácteres. Por exemplo, se usarmos a expressão *, então aceitamos qualquer elemento; por outro lado, a expressão l* retorna apenas itens começados por l.
  • ?: representa uma emcorrespondência de apenas um carácter. Por exemplo, a expressão abr? retorna elementos designados de abri, abre, etc.
  • []: pode ser usado para representar intervalos ou conjuntos de caracteres. A expressão [a-d]ri retornará todos os elementos começados por um carácteres existentes no intervalo a-d seguidos do texto ri; por outro lado, [ad]ri só retornará os elementos com nome ari ou dri, já que neste caso, [] apresenta apenas uma lista de caracteres  vez de um intervalo.

Muitos dos cmdlets usados permitem o uso de  wildcards de forma a permitir a filtragem de itens retornados. O exemplo clássico consiste na obtenção de determinados ficheiros existentes no interior de uma pasta:

MSH c:\>get-childitem c:\teste\*.doc

Neste exemplo, a shell irá apresentar todos os ficheiros de word existentes no interior da pasta teste. É importante salientar que os caracteres anteriores podem ser combinados de forma a obtermos uma expressão complexa que permite restringir ainda mais os elementos retornados pelo cmdlet.

Apesar de permitirem a execução de alguns comandos interessantes, a utilização de wildcards não possui o mesmo poder associado às expressões regulares. Ao contrário do que acontecia com os wildcards, as expressões regulares permitem-nos construir expressões constituídas por regras complexas. Felizmente para nós, as expressões regulares permitem-nos explicitar praticamente todos os padrões que desejamos. Infelizmente para o blog, não é possível apresentar aqui todas as características relacionadas com este tipo de expressões (por outro lado, existem vários sites na internet que contém dados relacionados com este tipo de elementos).

Convém referir que o Monad possui alguns operadores que normalmente são usados com os wildcards e expressões regulares: (c)like/notlike e (c)match/ notmatch. O primeiro par é usado normalmente com wildcards; por sua vez, o segunto é usado na avaliação de expressões regulares. O exemplo seguinte ilustra a utilização do operador -match em conjunto com uma expressão regular:

MSH c:\>get-childitem | where-obejct{ $_.Name -match “con\d” }

Este exemplo devolve todos os elementos cujo nome começa por con e termina com um algarismo. Nos próximos posts vamos continuar a falar acerca das funcionalidades do Monad e vamos introduzir o cmdlet get-wmiobject que, como o próprio nome indica, permite efectuar a gestão do sistema operativo através de objectos WMI.

posted on Thursday, February 02, 2006 9:47 PM
Comments
Title  
Name  
Url
Box Code
Protected by FormShield
Comments