Les doubles guillemets (") semblent être une source fréquente de confusion pour les auteurs de scripts shell. Or les guillemets sont tout simplement un moyen d’identifier des arguments de ligne de commande qui contiennent des espaces.
Par exemple, bien qu’elle semble correcte, la ligne de commande dir C:\Program
5. Faites bon usage des doubles guillemets
Files donne à la commande Dir deux arguments : C:\Program et Files. Pour indiquer que C:\Program Files ne constitue qu’un seul argument (y compris l’espace), placez-le entre des double guillemets : dir "C:\Program Files"
Les guillemets ne font pas partie du nom de répertoire. Ils indiquent à la commande Dir que le texte qu’ils délimitent est un argument. Les scripts shell acceptent aussi des arguments ligne de commande. Pour accéder aux arguments ligne de commande d’un script, utilisez la notation %n (où n est un chiffre de 0 à 9). Cette notation est appelée paramètre remplaçable (ou simplement paramètre).
Par exemple, le script remplacera le paramètre %1 par le premier argument ligne de commande, %2 par le deuxième argument, et ainsi de suite. En plus de %1 à %9, %0 est remplacé par le nom du script et %* est remplacé par la ligne de commande entière du script (en excluant le nom du script). Je mentionne ici les arguments ligne de commande parce que, quand Cmd.exe remplace les paramètres %1 à %9 par les arguments ligne de commande correspondants, elle laisse les doubles guillemets s’ils sont dans l’argument.
D’où une observation simple : un paramètre de script sera toujours placé entre des guillemets doubles qui contient des espaces. Les règles simples suivantes sont fondées sur cette observation et en les respectant scrupuleusement, vous éliminerez la plupart des problèmes de guillemets de vos scripts shell.
• Ne mettez pas des guillemets de part et d’autre des paramètres script (%1 à %9) parce qu’ils pourraient déjà contenir des guillemets. S’il faut utiliser un paramètre avec la commande If, utilisez d’autres caractères que les doubles guillemets (par exemple, des accolades) pour éviter les erreurs de syntaxe. La ligne de script suivante fonctionnera même si le premier paramètre (%1) contient des guillemets: If (%1)=={} Goto:HELP Exception à cette règle : quand on utilise la syntaxe %~n pour supprimer les guillemets d’un paramètre (que j’expliquerai dans la prochaine règle).
• N’incluez pas de guillemets dans le contenu d’une variable d’environnement. En effet, les variables d’environnement peuvent contenir des espaces sans avoir besoin de guillemets. S’il faut copier un paramètre dans une variable, utilisez la syntaxe %~n (où n est un chiffre de 1 à 9), qui renvoie le paramètre sans guillemets. Par exemple, la ligne Set DATAFILE=%~1 copiera le premier paramètre du script (sans guillemets) dans la variable DATAFILE. Cette règle souffre une exception si vous créez un texte entre guillemets qui sera transmis à une autre commande.
• N’oubliez pas de mettre des guillemets de part et d’autres des variables d’environnement si nécessaire. Soit les lignes de script suivantes : Set TARGET=%~2 Copy %1 "%TARGET%" La première de ces lignes copie le second argument du script dans la variable TARGET, en supprimant les guillemets. La seconde ligne est syntaxiquement saine parce que le paramètre %1 est déjà placé entre guillemets s’il contient des espaces, et la variable TARGET a besoin de guillemets parce qu’elle pourrait contenir des espaces.
Téléchargez cette ressource
Comment accélérer la transformation des environnements de travail ?
Dans un monde professionnel en pleine mutation, la mobilité, l’efficacité énergétique, la sécurité et l’intelligence embarquée sont devenues des critères décisifs pour les équipements informatiques. Découvrez comment les nouveaux PC Microsoft Surface dotés des processeurs Snapdragon X Series s’imposent comme une réponse stratégique aux nouveaux enjeux IT.
Les articles les plus consultés
- Activer la mise en veille prolongée dans Windows 10
- Afficher les icônes cachées dans la barre de notification
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
- Chiffrements symétrique vs asymétrique
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
Les plus consultés sur iTPro.fr
- Semi-conducteurs : comment l’Irlande veut contribuer à atténuer la pénurie mondiale de puces
- À l’aube de 2026, le SaaS entre dans une nouvelle phase
- Face à l’urgence écologique, l’IT doit faire sa révolution
- IoT et cybersécurité : les bases que chaque décideur doit maîtriser
Articles les + lus
CES 2026 : l’IA physique et la robotique redéfinissent le futur
Les 3 prédictions 2026 pour Java
Semi-conducteurs : comment l’Irlande veut contribuer à atténuer la pénurie mondiale de puces
Face à l’urgence écologique, l’IT doit faire sa révolution
D’ici 2030, jusqu’à 90 % du code pourrait être écrit par l’IA, pour les jeunes développeurs, l’aventure ne fait que commencer
À la une de la chaîne Tech
- CES 2026 : l’IA physique et la robotique redéfinissent le futur
- Les 3 prédictions 2026 pour Java
- Semi-conducteurs : comment l’Irlande veut contribuer à atténuer la pénurie mondiale de puces
- Face à l’urgence écologique, l’IT doit faire sa révolution
- D’ici 2030, jusqu’à 90 % du code pourrait être écrit par l’IA, pour les jeunes développeurs, l’aventure ne fait que commencer
