about_Wildcards
Descrizione breve
Viene descritto come usare caratteri jolly in PowerShell.
Descrizione lunga
I caratteri jolly rappresentano uno o più caratteri. È possibile usarli per creare modelli di parola nei comandi. Le espressioni con caratteri jolly vengono usate con l'operatore -like
o con qualsiasi parametro che accetta caratteri jolly.
Ad esempio, per trovare la corrispondenza con tutti i file nella C:\Techdocs
directory con un'estensione .ppt
di file, digitare:
Get-ChildItem C:\Techdocs\*.ppt
In questo caso, il carattere jolly asterisco (*
) rappresenta tutti i caratteri visualizzati prima dell'estensione del .ppt
nome file.
Le espressioni con caratteri jolly sono più semplici rispetto alle espressioni regolari. Per altre informazioni, vedere about_Regular_Expressions.
PowerShell supporta i caratteri jolly seguenti:
*
- Trova la corrispondenza con zero o più caratteria*
corrispondeaA
a ,ag
eApple
a*
non corrispondebanana
?
- Per le stringhe, trova la corrispondenza di un carattere in tale posizione?n
corrispondean
a ,in
eon
?n
non corrisponderan
?
- Per i file e le directory, trova la corrispondenza con zero o un carattere in tale posizione?.txt
corrispondenzea.txt
eb.txt
?.txt
non corrispondeab.txt
[ ]
- Trova la corrispondenza di un intervallo di caratteri[a-l]ook
corrispondebook
a ,cook
elook
[a-l]ook
non corrispondetook
[ ]
- Trova la corrispondenza di caratteri specifici[bc]ook
corrispondenzebook
ecook
[bc]ook
non corrispondehook
`*
- Trova la corrispondenza di qualsiasi carattere come valore letterale (non un carattere jolly)12`*4
corrisponde a12*4
12`*4
non corrisponde1234
È possibile includere più caratteri jolly nello stesso modello di parola. Ad esempio, per trovare file di testo con nomi che iniziano con le lettere da al, digitare:
Get-ChildItem C:\Techdocs\[a-l]*.txt
Nota
La corrispondenza con caratteri jolly per gli elementi del file system funziona in modo diverso rispetto alle stringhe. Per altre informazioni, vedere la sezione Osservazioni del metodo DirectoryInfo.GetFiles(String, EnumerationOptions).
In alcuni casi può essere necessario trovare una corrispondenza con il carattere letterale anziché considerarlo come carattere jolly. In questi casi è possibile usare il carattere backtick (`
) per eseguire l'escape del carattere jolly in modo che venga confrontato usando il valore letterale carattere. Ad esempio, '*hello`?*'
corrisponde a stringhe contenenti "hello?".
Molti cmdlet accettano caratteri jolly nei valori dei parametri. L'argomento della Guida per ogni cmdlet descrive i parametri che accettano caratteri jolly. Per i parametri che accettano caratteri jolly, l'uso non fa distinzione tra maiuscole e minuscole.
È possibile usare caratteri jolly nei comandi e nei blocchi di script, ad esempio per creare un criterio di parola che rappresenta i valori delle proprietà. Ad esempio, il comando seguente ottiene i servizi in cui il valore della proprietà ServiceType include Interactive.
Get-Service | Where-Object {$_.ServiceType -Like "*Interactive*"}
Nell'esempio seguente l'istruzione If
include una condizione che usa caratteri jolly per trovare i valori delle proprietà. Se la descrizione del punto di ripristino include PowerShell, il comando aggiunge il valore della proprietà CreationTime del punto di ripristino a un file di log.
$p = Get-ComputerRestorePoint
foreach ($point in $p) {
if ($point.description -like "*PowerShell*") {
Add-Content -Path C:\TechDocs\RestoreLog.txt "$($point.CreationTime)"
}
}