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