about_Wildcards
Descrição breve
Descreve como usar caracteres curinga no PowerShell.
Descrição longa
Os caracteres curinga representam um ou vários caracteres. Você pode usá-los para criar padrões de palavras em comandos. As expressões curinga são usadas com o -like
operador ou com qualquer parâmetro que aceite curingas.
Por exemplo, para corresponder todos os C:\Techdocs
arquivos no diretório com uma extensão de nome de .ppt
arquivo, digite:
Get-ChildItem C:\Techdocs\*.ppt
Nesse caso, o caractere curinga asterisco (*
) representa todos os caracteres que aparecem antes da extensão de nome de .ppt
arquivo.
As expressões curinga são mais simples do que as expressões regulares. Para obter mais informações, consulte about_Regular_Expressions.
O PowerShell oferece suporte aos seguintes caracteres curinga:
*
- Combine zero ou mais caracteresa*
partidasaA
,ag
eApple
a*
não correspondebanana
?
- Para strings, corresponda um caractere nessa posição?n
partidasan
,in
eon
?n
não corresponderan
?
- Para arquivos e diretórios, corresponda a zero ou um caractere nessa posição?.txt
partidasa.txt
eb.txt
?.txt
não correspondeab.txt
[ ]
- Combine uma variedade de personagens[a-l]ook
partidasbook
,cook
elook
[a-l]ook
não correspondetook
[ ]
- Combine personagens específicos[bc]ook
partidasbook
ecook
[bc]ook
não correspondehook
`*
- Combine qualquer caractere como um literal (não um caractere curinga)12`*4
Corresponde12*4
12`*4
não corresponde1234
Você pode incluir vários caracteres curinga no mesmo padrão de palavras. Por exemplo, para localizar arquivos de texto com nomes que começam com as letras de a a l, digite:
Get-ChildItem C:\Techdocs\[a-l]*.txt
Observação
A correspondência curinga para itens do sistema de arquivos funciona de forma diferente do que para cadeias de caracteres. Para obter mais informações, consulte a seção Comentários do método DirectoryInfo.GetFiles(String, EnumerationOptions).
Pode haver casos em que você deseja corresponder ao caractere literal em vez de tratá-lo como um caractere curinga. Nesses casos, você pode usar o caractere backtick (`
) para escapar do caractere curinga para que ele seja comparado usando o valor de caractere literal. Por exemplo, '*hello`?*'
corresponde cadeias de caracteres contendo "hello?".
Muitos cmdlets aceitam caracteres curinga em valores de parâmetro. O tópico da Ajuda de cada cmdlet descreve quais parâmetros aceitam caracteres curinga. Para parâmetros que aceitam caracteres curinga, seu uso não diferencia maiúsculas de minúsculas.
Você pode usar caracteres curinga em comandos e blocos de script, como para criar um padrão de palavra que representa valores de propriedade. Por exemplo, o comando a seguir obtém serviços nos quais o valor da propriedade ServiceType inclui Interactive.
Get-Service | Where-Object {$_.ServiceType -Like "*Interactive*"}
No exemplo a seguir, a If
instrução inclui uma condição que usa caracteres curinga para localizar valores de propriedade. Se a Descrição do ponto de restauração incluir o PowerShell, o comando adicionará o valor da propriedade CreationTime do ponto de restauração a um arquivo de log.
$p = Get-ComputerRestorePoint
foreach ($point in $p) {
if ($point.description -like "*PowerShell*") {
Add-Content -Path C:\TechDocs\RestoreLog.txt "$($point.CreationTime)"
}
}