Partager via


about_Wildcards

Description courte

Décrit comment utiliser des caractères génériques dans PowerShell.

Description longue

Les caractères génériques représentent un ou plusieurs caractères. Vous pouvez les utiliser pour créer des modèles de mots dans des commandes. Les expressions génériques sont utilisées avec l’opérateur -like ou avec n’importe quel paramètre qui accepte des caractères génériques.

Par exemple, pour faire correspondre tous les fichiers du C:\Techdocs répertoire avec une .ppt extension de nom de fichier, tapez :

Get-ChildItem C:\Techdocs\*.ppt

Dans ce cas, le caractère générique astérisque (*) représente tous les caractères qui apparaissent avant l’extension de nom de .ppt fichier.

Les expressions génériques sont plus simples que les expressions régulières. Pour plus d’informations, consultez about_Regular_Expressions.

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

  • * - Mettre en correspondance zéro ou plusieurs caractères
    • a* correspondances aA, aget Apple
    • a* ne correspond pas banana
  • ? - Pour les chaînes, mettre en correspondance un caractère dans cette position
    • ?n correspondances an, inet on
    • ?n ne correspond pas ran
  • ? - Pour les fichiers et les répertoires, mettre en correspondance zéro ou un caractère dans cette position
    • ?.txt correspondances a.txt et b.txt
    • ?.txt ne correspond pas ab.txt
  • [ ] - Mettre en correspondance une plage de caractères
    • [a-l]ook correspondances book, cooket look
    • [a-l]ook ne correspond pas took
  • [ ] - Mettre en correspondance des caractères spécifiques
    • [bc]ook correspondances book et cook
    • [bc]ook ne correspond pas hook
  • `* - Faire correspondre n’importe quel caractère en tant que littéral (pas un caractère générique)
    • 12`*4 correspond à 12*4
    • 12`*4 ne correspond pas 1234

Vous pouvez inclure plusieurs caractères génériques dans le même modèle de mot. Par exemple, pour rechercher des fichiers texte avec des noms commençant par les lettres a travers l, tapez :

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

Remarque

La correspondance générique pour les éléments de système de fichiers fonctionne différemment des chaînes. Pour plus d’informations, consultez la section Notes de la méthode DirectoryInfo.GetFiles(String, EnumerationOptions).

Il peut arriver que vous souhaitiez faire correspondre le caractère littéral au lieu de le traiter comme un caractère générique. Dans ces cas, vous pouvez utiliser le caractère backtick (`) pour échapper au caractère générique afin qu’il soit comparé à l’aide de la valeur de caractère littéral. Par exemple, '*hello`?*' correspond aux chaînes contenant « hello ? ».

De nombreuses applets de commande acceptent des caractères génériques dans les valeurs de paramètre. La rubrique d’aide pour chaque applet de commande décrit quels paramètres acceptent des caractères génériques. Pour les paramètres qui acceptent des caractères génériques, leur utilisation ne respecte pas la casse.

Vous pouvez utiliser des caractères génériques dans des commandes et des blocs de script, par exemple pour créer un modèle de mot qui représente des valeurs de propriété. Par exemple, la commande suivante obtient les services dans lesquels la valeur de propriété ServiceType inclut Interactive.

Get-Service | Where-Object {$_.ServiceType -Like "*Interactive*"}

Dans l’exemple suivant, l’instruction If inclut une condition qui utilise des caractères génériques pour rechercher des valeurs de propriété. Si la description du point de restauration inclut PowerShell, la commande ajoute la valeur de la propriété CreationTime du point de restauration à un fichier journal.

$p = Get-ComputerRestorePoint
foreach ($point in $p) {
  if ($point.description -like "*PowerShell*") {
    Add-Content -Path C:\TechDocs\RestoreLog.txt "$($point.CreationTime)"
  }
}

Voir aussi