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
Créer des agents dans Microsoft 365 Copilot
Insight vous guide dans l’utilisation de la nouvelle expérience de création d’agents dans Microsoft Copilot Studio, disponible dans Copilot Chat. Découvrez les étapes clés pour concevoir, configurer et déployer ces nouveaux agents et injecter la puissance de l’IA directement dans le flux de travail.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Top 5 du Baromètre de la cybersécurité 2025 : entre confiance et vulnérabilités persistantes
- Analyse Patch Tuesday Février 2026
- Entamer la transition vers la cryptographie post quantique est prioritaire
- Full Cloud : une transformation numérique inévitable pour les entreprises ?
Articles les + lus
Quand l’innovation échappe à ses créateurs: Comment éviter l’effet Frankenstein à l’ère de l’IA
Alliée ou menace ? Comment l’IA redessine le paysage cyber
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
À la une de la chaîne Tech
- Quand l’innovation échappe à ses créateurs: Comment éviter l’effet Frankenstein à l’ère de l’IA
- Alliée ou menace ? Comment l’IA redessine le paysage cyber
- 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
