Les caractères spéciaux et les caractères réservés peuvent aussi causer des problèmes dans le code VBScript. D’une manière générale, les caractères spéciaux sont ceux qui ne sont ni alphabétiques ni numériques. Ainsi, l’astérisque (*), le point d’interrogation (?), tabulation, la parenthèse angulaire gauche (<) et la parenthèse angulaire droite (>)
Caractères spéciaux et réservés

sont tous des caractères spéciaux. Certains caractères spéciaux, comme la tabulation, ne sont pas imprimables. D’autres sont réservés à des rôles bien précis. Selon ce qu’accomplit votre code, les caractères réservés seront différents. Ainsi, avec des expressions régulières VBScript, il y a beaucoup de caractères réservés – appelés métacaractères. Ils incluent
$ ( ) * + . [ ] ? \ / ^ { } |
Si vous utilisez des tags XML dans le code VBScript, intéressez- vous aux caractères réservés suivants
& ‘ < > "
Le plus souvent, vous pouvez utiliser des caractères réservés dans le code, mais il faut les faire « échapper » avec le caractère d’échappement approprié. Ainsi, supposons que vous vouliez utiliser une expression régulière chargée de repérer les signes dollars ($) dans le texte. Comme $ est le métacaractère qui dit à l’objet RegExp de VBScript de correspondre à la fin d’une chaîne d’entrée, il faut le faire échapper avec une barre oblique inverse (\) comme dans l’exemple de code suivant
Option Explicit
Dim ObjRegExp
Set objRegexp = _ CreateObject("VBScript.RegExp")
objRegExp.Pattern = "\$"
Pour les tags XML, on peut remplacer le caractère réservé par la séquence d’échappement appropriée. Par exemple, on peut remplacer < par la séquence < et remplacer > par la séquence > Autre source de problème, les significations des caractères réservés ne sont pas universelles. On en voit un bon exemple dans l’article Microsoft « Hey, Scripting Guy! How Can I Connect to a Folder When There’s an Apostrophe in the Folder Name? » (« Et, le gars du scripting! Comment puisje me connecter à un dossier quand le nom de celui-ci contient une apostrophe ? »).
Le gars du scripting écrit, « Ah, l’apostrophe (aussi appelée guillemet simple). C’est un simple petit caractère insignifiant qui a probablement causé aux auteurs de scripts plus de soucis que tout autre caractère du clavier. (Oui, même plus que la tilde ~). Le problème est que l’apostrophe est un caractère réservé dans VBScript et dans WMI. Autrement dit, ces techniques de scripting veulent se réserver l’usage de l’apostrophe. Fort bien, face à des noms de dossiers comme le dossier de Ken Myer ou des patronymes comme O’Donnell ou O’Hara. Il faut bien utiliser l’apostrophe puisqu’il n’y a pas d’autre moyen d’écrire le nom. Le dossier de Ken Myer (Ken Meyer’s Folder) ? Or, VBScript et WMI veulent l’usage exclusif de l’apostrophe pour d’autres raisons. D’où les difficultés. »
Comme le gars du scripting le mentionne, il existe un moyen de résoudre ce problème en faisant échapper l’apostrophe. Dans une requête de WQL, par exemple, on fait cela en plaçant une barre oblique inverse devant l’apostrophe. Le gars du scripting donne d’autres conseils utiles et donc l’article vaut vraiment la peine d’être lu. L’un des moyens de trouver les caractères réservés passe par l’utilisation des fonctions Escape et Unescape. Bien que ces fonctions ne soient pas documentées dans le fichier d’aide WS 5.6, elles figurent dans la documentation sur le site Web Microsoft Developer Network (MSDN) . Microsoft a conçu les fonctions Escape et Unescape pour rendre visibles les caractères spéciaux dans les URL. Mais on peut utiliser la fonction Escape pour déboguer des fichiers VBScript susceptibles de contenir des caractères spéciaux. La fonction Escape fonctionne en analysant une chaîne un caractère à la fois.
Quand la fonction rencontre un caractère spécial, elle le remplace par un signe pourcent (%) et par le nombre hexadécimal du caractère remplacé. Par exemple, si l’on exécute le code
Option Explicit
Dim objShell
Set objShell = _ CreateObject("VBScript.Shell")
VBScript.Echo Escape("That darn cat!")
on obtient les resultats de la figure 1. Ils montrent que l’espace (code d’échappement %20) et le point d’exclamation (%21) sont des caractères spéciaux. Enfin, il faut savoir que VBScript a aussi des mots réservés. Pour en consulter la liste, voir l’article Microsoft.
Téléchargez cette ressource

Guide de Cyber-résilience pour Microsoft 365
La violation de votre tenant M365 va au-delà d’un simple incident de cybersécurité. Elle peut entraîner une interruption opérationnelle généralisée, des perturbations commerciales et une exposition de vos données sensibles. Découvrez les méthodes et technologies pour évaluer, comparer et renforcer votre posture de sécurité Microsoft 365.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Les banques passent à l’action avec l’IA générative et le cloud
- DSI en assurance : gardien du temple ou moteur de la transformation ?
- Ransomware : persistance des cyberattaques à l’échelle mondiale
- Cybersécurité : l’IA générative rebat les cartes du cybercrime
- Le World Cyber Ranking, 1er classement mondial de la cybersécurité des entreprises
