Compartilhar via


Suporte a caracteres curinga em parâmetros de cmdlet

Muitas vezes, você precisará criar um cmdlet para ser executado em um grupo de recursos em vez de em um único recurso. Por exemplo, um cmdlet pode precisar localizar todos os arquivos em um armazenamento de dados que tenham o mesmo nome ou extensão. Você deve fornecer suporte para caracteres curinga ao projetar um cmdlet que será executado em um grupo de recursos.

Observação

Às vezes, usar caracteres curinga é chamado de globbing.

Cmdlets do Windows PowerShell que usam curingas

Muitos cmdlets do Windows PowerShell dão suporte a caracteres curinga para seus valores de parâmetro. Por exemplo, quase todos os cmdlets que têm um parâmetro Name ou Path dão suporte a caracteres curinga para esses parâmetros. (Embora a maioria dos cmdlets que têm um parâmetro Path também tenha um parâmetro LiteralPath que não dá suporte a caracteres curinga.) O comando a seguir mostra como um caractere curinga é usado para retornar todos os cmdlets na sessão atual cujo nome contém o verbo Get.

Get-Command get-*

Caracteres curinga com suporte

O Windows PowerShell dá suporte aos seguintes caracteres curinga.

Curinga Descrição Exemplo Correspondências Não corresponde
* Corresponde a zero ou mais caracteres, começando na posição especificada a* A, ag, Apple
? Corresponde a qualquer caractere na posição especificada ?n Um, dentro, em Correu
[ ] Corresponde a um intervalo de caracteres [a-l]ook book, cook, look canto, tomou
[ ] Corresponde aos caracteres especificados [bn]ook book, nook cook, olha

Ao criar cmdlets que dão suporte a caracteres curinga, permita combinações de caracteres curinga. Por exemplo, o comando a seguir usa o cmdlet Get-ChildItem para recuperar todos os arquivos de .txt que estão na pasta C:\Techdocs e que começam com as letras "a" por "l".

Get-ChildItem C:\techdocs\[a-l]\*.txt

O comando anterior usa o caractere curinga do intervalo [a-l] para especificar que o nome do arquivo deve começar com os caracteres "a" por "l" e usa o caractere curinga * como um espaço reservado para quaisquer caracteres entre a primeira letra do nome do arquivo e a extensão .txt.

O exemplo a seguir usa um padrão curinga de intervalo que exclui a letra "d", mas inclui todas as outras letras de "a" a "f".

Get-ChildItem C:\techdocs\[a-cef]\*.txt

Manipulando caracteres literais em padrões curinga

Se o padrão curinga especificado contiver caracteres literais que não devem ser interpretados como caracteres curinga, use o caractere backtick (`) como um caractere de escape. Quando você especificar caracteres literais na API do PowerShell, use um único backtick. Quando você especificar caracteres literais no prompt de comando do PowerShell, use dois backticks.

Por exemplo, o padrão a seguir contém dois colchetes que devem ser levados literalmente.

Quando usado na API do PowerShell, use:

  • "John Smith '[*']"

Quando usado no prompt de comando do PowerShell:

  • "John Smith ''[*'']"

Esse padrão corresponde a "John Smith [Marketing]" ou "John Smith [Desenvolvimento]". Por exemplo:

PS> "John Smith [Marketing]" -like "John Smith ``[*``]"
True

PS> "John Smith [Development]" -like "John Smith ``[*``]"
True

Caracteres curinga e saída de cmdlet

Quando os parâmetros de cmdlet dão suporte a caracteres curinga, a operação geralmente gera uma saída de matriz. Ocasionalmente, não faz sentido dar suporte a uma saída de matriz porque o usuário pode usar apenas um único item. Por exemplo, o cmdlet Set-Location não dá suporte à saída da matriz porque o usuário define apenas um único local. Nesse caso, o cmdlet ainda dá suporte a caracteres curinga, mas força a resolução a um único local.

Consulte Também

gravando um cmdlet do Windows PowerShell

da classe WildcardPattern