Partager via


Prise en charge des caractères génériques dans les paramètres des applets de commande

Souvent, vous devrez concevoir une applet de commande pour s’exécuter sur un groupe de ressources plutôt que sur une seule ressource. Par exemple, une applet de commande peut avoir besoin de localiser tous les fichiers d’un magasin de données portant le même nom ou extension. Vous devez prendre en charge les caractères génériques lorsque vous concevez une applet de commande qui sera exécutée sur un groupe de ressources.

Remarque

L’utilisation de caractères génériques est parfois appelée globbing.

Applets de commande Windows PowerShell qui utilisent des caractères génériques

De nombreuses applets de commande Windows PowerShell prennent en charge les caractères génériques pour leurs valeurs de paramètre. Par exemple, presque toutes les applets de commande qui ont un paramètre Name ou Path prennent en charge les caractères génériques pour ces paramètres. (Bien que la plupart des applets de commande qui ont un paramètre Path ont également un paramètre LiteralPath qui ne prend pas en charge les caractères génériques.) La commande suivante montre comment un caractère générique est utilisé pour renvoyer toutes les applets de commande de la session active dont le nom contient le verbe Get.

Get-Command get-*

Caractères génériques pris en charge

Windows PowerShell prend en charge les caractères génériques suivants.

Caractère générique Description Exemple : Matchs Ne correspond pas
* Correspond à zéro ou plusieurs caractères, en commençant à la position spécifiée a* A, ag, Apple
? Correspond à n’importe quel caractère à la position spécifiée ?n An, in, on coururent
[ ] Correspond à une plage de caractères [a-l]ook livre, cuisinier, look nook, pris
[ ] Correspond aux caractères spécifiés [bn]ook livre, nook cuisinier, look

Lorsque vous concevez des applets de commande qui prennent en charge des caractères génériques, autorisez les combinaisons de caractères génériques. Par exemple, la commande suivante utilise l’applet de commande Get-ChildItem pour récupérer tous les fichiers .txt qui se trouvent dans le dossier C :\Techdocs et qui commencent par les lettres « a » par « l ».

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

La commande précédente utilise le caractère générique de plage [a-l] pour spécifier que le nom de fichier doit commencer par les caractères « a » par « l » et utilise le caractère générique * comme espace réservé pour tous les caractères entre la première lettre du nom de fichier et l’extension .txt.

L’exemple suivant utilise un modèle générique de plage qui exclut la lettre « d », mais inclut toutes les autres lettres de « a » à « f ».

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

Gestion des caractères littéraux dans des modèles génériques

Si le modèle générique que vous spécifiez contient des caractères littéraux qui ne doivent pas être interprétés comme des caractères génériques, utilisez le caractère backtick (`) comme caractère d’échappement. Lorsque vous spécifiez des caractères littéraux dans l’API PowerShell, utilisez un seul backtick. Lorsque vous spécifiez des caractères littéraux à l’invite de commandes PowerShell, utilisez deux backticks.

Par exemple, le modèle suivant contient deux crochets qui doivent être pris littéralement.

Lorsqu’elle est utilisée dans l’API PowerShell, utilisez :

  • « John Smith '[*'] »

Lorsqu’elle est utilisée à partir de l’invite de commandes PowerShell :

  • « John Smith ''[*''] »

Ce modèle correspond à « John Smith [Marketing] » ou « John Smith [Développement] ». Par exemple:

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

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

Sortie de l’applet de commande et caractères génériques

Lorsque les paramètres d’applet de commande prennent en charge les caractères génériques, l’opération génère généralement une sortie de tableau. Parfois, il n’est pas judicieux de prendre en charge une sortie de tableau, car l’utilisateur ne peut utiliser qu’un seul élément. Par exemple, l’applet de commande Set-Location ne prend pas en charge la sortie du tableau, car l’utilisateur ne définit qu’un seul emplacement. Dans cette instance, l’applet de commande prend toujours en charge les caractères génériques, mais elle force la résolution à un emplacement unique.

Voir aussi

écriture d’une applet de commande Windows PowerShell

la classe WildcardPattern