Condividi tramite


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
  • ? - Per le stringhe, trova la corrispondenza di un carattere in tale posizione
    • ?n corrisponde ana , ine on
    • ?n non corrisponde ran
  • ? - Per i file e le directory, trova la corrispondenza con zero o un carattere in tale posizione
    • ?.txt corrispondenze a.txt e b.txt
    • ?.txt non corrisponde ab.txt
  • [ ] - 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 a l, 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)"
  }
}

Vedi anche