LIKE, opérateur
L’opérateur LIKE détermine si une chaîne de caractères correspond à un modèle spécifié. Le modèle spécifié peut contenir exactement les caractères à mettre en correspondance, ou il peut contenir des méta-caractères. En effet, l’opérateur LIKE correspond aux sous-chaînes à l’aide des caractères génériques dans le tableau suivant.
Personnage | Description |
---|---|
[ ] | Tout caractère dans la plage spécifiée ([a-f]) ou défini ([abcdef]). |
^ | Tout caractère non compris dans la plage ([^a-f]) ou défini ([^abcdef].) |
% | Chaîne de 0 (zéro) ou plus de caractères. L’exemple suivant recherche toutes les instances où « Win » est trouvé n’importe où dans le nom de la classe : SELECT * FROM meta_class WHERE __Class LIKE "%Win%" |
_ (trait de soulignement) | N’importe quel caractère. Tout trait de soulignement littéral utilisé dans la chaîne de requête doit être échappé en le plaçant à l’intérieur [] (crochets). |
Par exemple, le code Power Shell suivant récupère toutes les instances de la classe Win32_operatingSystem dont propriété Name commence par FirstName:
Get-WmiObject win32_computerSystem -filter "Name LIKE 'FirstName%'"
Étant donné que le trait de soulignement est un méta caractère, si la cible de requête a un trait de soulignement, les caractères d’échappement « [] » doivent l’entourer. Par exemple, vous pouvez interroger toutes les classes qui ont un trait de soulignement double dans le nom.
Pour localiser toutes les classes avec un trait de soulignement double dans le nom, vous devez placer les deux traits de soulignement avec [] (crochets), par exemple :
SELECT * FROM meta_class WHERE __CLASS LIKE "%[_][_]%"
Vous pouvez négation d’une instruction LIKE à l’aide de NOT ; pour ce faire, veillez à placer le NOT directement devant le nom du champ. Par exemple:
Get-WmiObject -computerName "." -query 'Select * FROM Win32_Printer WHERE Local="TRUE" AND Network ="False" AND DriverName LIKE "%HP%" AND NOT PortName LIKE "%10.%" AND NOT PortName LIKE "%\\%"'
Rubriques connexes