about_Wildcards
Breve descrição
Descreve como utilizar carateres universais no PowerShell.
Descrição longa
Os carateres universais representam um ou muitos carateres. Pode utilizá-los para criar padrões de palavras em comandos. As expressões universais são utilizadas com o -like
operador ou com qualquer parâmetro que aceite carateres universais.
Por exemplo, para corresponder todos os ficheiros no C:\Techdocs
diretório com uma .ppt
extensão de nome de ficheiro, escreva:
Get-ChildItem C:\Techdocs\*.ppt
Neste caso, o caráter universal asterisco (*
) representa os carateres que aparecem antes da extensão de nome de .ppt
ficheiro.
As expressões universais são mais simples do que as expressões normais. Para obter mais informações, veja about_Regular_Expressions.
O PowerShell suporta os seguintes carateres universais:
*
- Corresponder zero ou mais carateresa*
correspondeaA
a ,ag
eApple
a*
não correspondebanana
?
- Corresponder um caráter nessa posição?n
correspondean
a ,in
eon
?n
não corresponderan
[ ]
- Corresponder um intervalo de carateres[a-l]ook
correspondebook
a ,cook
elook
[a-l]ook
não correspondetook
[ ]
- Corresponder carateres específicos[bc]ook
correspondênciasbook
ecook
[bc]ook
não correspondehook
`*
- Corresponder qualquer caráter como literal (não um caráter universal)12`*4
correspondências12*4
12`*4
não corresponde1234
Pode incluir múltiplos carateres universais no mesmo padrão de palavra. Por exemplo, para localizar ficheiros de texto com nomes que comecem com as letras a a l, escreva:
Get-ChildItem C:\Techdocs\[a-l]*.txt
Pode haver casos em que pretende corresponder ao caráter literal em vez de o tratar como um caráter universal. Nesses casos, pode utilizar o caráter de acento anterior (`
) para escapar ao caráter universal para que seja comparado com o valor de caráter literal. Por exemplo, '*hello`?*'
corresponde a cadeias que contêm "olá?".
Muitos cmdlets aceitam carateres universais em valores de parâmetros. O tópico de Ajuda para cada cmdlet descreve os parâmetros que aceitam carateres universais. Para parâmetros que aceitam carateres universais, a sua utilização não é sensível a maiúsculas e minúsculas.
Pode utilizar carateres universais em comandos e blocos de script, como para criar um padrão de palavra que representa valores de propriedade. Por exemplo, o comando seguinte obtém serviços nos quais o valor da propriedade ServiceType inclui Interativo.
Get-Service | Where-Object {$_.ServiceType -Like "*Interactive*"}
No exemplo seguinte, a If
instrução inclui uma condição que utiliza carateres universais para localizar valores de propriedade. Se a Descrição do ponto de restauro incluir o PowerShell, o comando adiciona o valor da propriedade CreationTime do ponto de restauro a um ficheiro de registo.
$p = Get-ComputerRestorePoint
foreach ($point in $p) {
if ($point.description -like "*PowerShell*") {
Add-Content -Path C:\TechDocs\RestoreLog.txt "$($point.CreationTime)"
}
}