about_Wildcards
Description courte
Décrit comment utiliser des caractères génériques carte dans PowerShell.
Description longue
Les caractères génériques carte représentent un ou plusieurs caractères. Vous pouvez les utiliser pour créer des modèles de mots dans des commandes. Les expressions wild carte sont utilisées avec l’opérateur -like
ou avec n’importe quel paramètre qui accepte wild carte s.
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 astérisque (*
) wild carte représente tous les caractères qui apparaissent avant l’extension de nom de .ppt
fichier.
Les expressions génériques carte 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 carte :
*
- Mettre en correspondance zéro ou plusieurs caractèresa*
correspondancesaA
,ag
etApple
a*
ne correspond pasbanana
?
- Pour les chaînes, mettre en correspondance un caractère dans cette position?n
correspondancesan
,in
eton
?n
ne correspond pasran
?
- Pour les fichiers et les répertoires, mettre en correspondance zéro ou un caractère dans cette position?.txt
correspondancesa.txt
etb.txt
?.txt
ne correspond pasab.txt
[ ]
- Mettre en correspondance une plage de caractères[a-l]ook
correspondancesbook
,cook
etlook
[a-l]ook
ne correspond pastook
[ ]
- Mettre en correspondance des caractères spécifiques[bc]ook
correspondancesbook
etcook
[bc]ook
ne correspond pashook
`*
- Mettre en correspondance n’importe quel caractère en tant que littéral (pas un caractère sauvage carte)12`*4
correspond à12*4
12`*4
ne correspond pas1234
Vous pouvez inclure plusieurs caractères génériques carte dans le même modèle de mots. 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
Wild carte correspondance 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 carte. Dans ces cas, vous pouvez utiliser le caractère backtick (`
) pour échapper au caractère sauvage carte 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 carte dans les valeurs de paramètre. La rubrique d’aide de chaque applet de commande décrit les paramètres qui acceptent des caractères génériques carte. Pour les paramètres qui acceptent des caractères génériques carte, leur utilisation ne respecte pas la casse.
Vous pouvez utiliser des caractères génériques carte 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 carte 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)"
}
}