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 inmac wstore pour l’équipement IT de l’entreprise
Découvrez toutes nos actualités à travers des interviews, avis, conseils d'experts, témoignages clients, ainsi que les dernières tendances et solutions IT autour de nos 4 univers produits : Poste de travail, Affichage et Collaboration, Impression et Infrastructure.
Les articles les plus consultés
- Les 6 étapes vers un diagnostic réussi
- Cybersécurité Active Directory et les attaques de nouvelle génération
- Activer la mise en veille prolongée dans Windows 10
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
Les plus consultés sur iTPro.fr
- Baromètre de la Transformation digitale 2024 en France
- Le secteur financier reste dans la ligne de mire des cyberattaquants
- CyberPatriot ®, le SOC de dernière génération de CHEOPS TECHNOLOGY
- L’IA comme levier d’évangélisation du COMEX à la cybersécurité
- Intégration et utilisation de l’IA en 3 conseils clés