Condividi tramite


Supporto di caratteri jolly nei parametri dei cmdlet

Spesso, è necessario progettare un cmdlet per l'esecuzione su un gruppo di risorse anziché su una singola risorsa. Ad esempio, un cmdlet potrebbe dover individuare tutti i file in un archivio dati con lo stesso nome o estensione. È necessario fornire il supporto per i caratteri jolly quando si progetta un cmdlet che verrà eseguito su un gruppo di risorse.

Nota

L'uso di caratteri jolly viene talvolta definito globbing.

Cmdlet di Windows PowerShell che usano caratteri jolly

Molti cmdlet di Windows PowerShell supportano caratteri jolly per i relativi valori di parametro. Ad esempio, quasi tutti i cmdlet con un parametro Name o Path supportano caratteri jolly per questi parametri. Anche se la maggior parte dei cmdlet con un parametro Path ha anche un parametro LiteralPath che non supporta i caratteri jolly. Il comando seguente mostra come viene usato un carattere jolly per restituire tutti i cmdlet nella sessione corrente il cui nome contiene il verbo Get.

Get-Command get-*

Caratteri jolly supportati

Windows PowerShell supporta i caratteri jolly seguenti.

Carattere jolly Descrizione Esempio Corrispondenze Non corrisponde
* Trova la corrispondenza con zero o più caratteri, a partire dalla posizione specificata a* A, ag, Apple
? Trova la corrispondenza con qualsiasi carattere nella posizione specificata ?n Un, in, su corse
[ ] Corrisponde a un intervallo di caratteri [a-l]ook book, cook, look nook, preso
[ ] Corrisponde ai caratteri specificati [bn]ook libro, nook cook, look

Quando si progettano cmdlet che supportano caratteri jolly, consentire combinazioni di caratteri jolly. Ad esempio, il comando seguente usa il cmdlet Get-ChildItem per recuperare tutti i file .txt presenti nella cartella C:\Techdocs e che iniziano con le lettere "a" tramite "l".

Get-ChildItem C:\techdocs\[a-l]\*.txt

Il comando precedente usa il carattere jolly dell'intervallo [a-l] per specificare che il nome file deve iniziare con i caratteri "a" tramite "l" e usa il carattere jolly * come segnaposto per tutti i caratteri tra la prima lettera del nome file e l'estensione .txt.

Nell'esempio seguente viene utilizzato un criterio con caratteri jolly di intervallo che esclude la lettera "d", ma include tutte le altre lettere da "a" a "f".

Get-ChildItem C:\techdocs\[a-cef]\*.txt

Gestione dei caratteri letterali nei modelli con caratteri jolly

Se il criterio con caratteri jolly specificato contiene caratteri letterali che non devono essere interpretati come caratteri jolly, usare il carattere di backtick (`) come carattere di escape. Quando si specificano caratteri letterali int l'API di PowerShell, usare un singolo backtick. Quando si specificano caratteri letterali al prompt dei comandi di PowerShell, usare due backtick.

Ad esempio, il modello seguente contiene due parentesi quadre che devono essere prese letteralmente.

Se usato nell'API di PowerShell, usare:

  • "John Smith '[*']"

Se usato dal prompt dei comandi di PowerShell:

  • "John Smith ''[*'']"

Questo modello corrisponde a "John Smith [Marketing]" o "John Smith [Sviluppo]". Per esempio:

PS> "John Smith [Marketing]" -like "John Smith ``[*``]"
True

PS> "John Smith [Development]" -like "John Smith ``[*``]"
True

Output dei cmdlet e caratteri jolly

Quando i parametri del cmdlet supportano caratteri jolly, l'operazione genera in genere un output di matrice. In alcuni casi, non è opportuno supportare un output di matrice perché l'utente potrebbe usare solo un singolo elemento. Ad esempio, il cmdlet Set-Location non supporta l'output della matrice perché l'utente imposta solo una singola posizione. In questo caso, il cmdlet supporta ancora i caratteri jolly, ma forza la risoluzione in un'unica posizione.

Vedere anche

scrittura di un cmdlet di Windows PowerShell

Classe WildcardPattern