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ù caratteri
    • a* corrisponde aAa , age Apple
    • a* non corrisponde banana
  • ? - Trova la corrispondenza di un carattere in tale posizione
    • ?n corrisponde ana , ine on
    • ?n non corrisponde ran
  • [ ] - Trova la corrispondenza di un intervallo di caratteri
    • [a-l]ook corrisponde booka , cooke look
    • [a-l]ook non corrisponde took
  • [ ] - Trova la corrispondenza di caratteri specifici
    • [bc]ook corrispondenze book e cook
    • [bc]ook non corrisponde hook
  • `* - Trova la corrispondenza di qualsiasi carattere come valore letterale (non un carattere jolly)
    • 12`*4 corrisponde a 12*4
    • 12`*4 non corrisponde 1234

È 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

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)"
  }
}

Vedi anche