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
Guide de Threat Intelligence contextuelle
Ce guide facilitera l’adoption d’une Threat Intelligence - renseignement sur les cybermenaces, cyberintelligence - adaptée au "contexte", il fournit des indicateurs de performance clés (KPI) pour progresser d' une posture défensive vers une approche centrée sur l’anticipation stratégique
Les articles les plus consultés
- Chiffrements symétrique vs asymétrique
- Cybersécurité Active Directory et les attaques de nouvelle génération
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Activer la mise en veille prolongée dans Windows 10
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
Les plus consultés sur iTPro.fr
- La chaîne d’approvisionnement, point de rupture récurent du SI
- Ready For IT 2026 : quand l’accélération de l’innovation redessine les priorités des décideurs IT
- Microsoft Build 2026 : industrialiser l’IA agentique dans les environnements d’entreprise
- IA et souveraineté des données : les entreprises françaises redéfinissent les infrastructures IT
Articles les + lus
Computex 2026 : 5 signaux forts à retenir
La chaîne d’approvisionnement, point de rupture récurent du SI
Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
Analyse Patch Tuesday Mai 2026
À la une de la chaîne Tech
- Computex 2026 : 5 signaux forts à retenir
- La chaîne d’approvisionnement, point de rupture récurent du SI
- Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
- Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
- Analyse Patch Tuesday Mai 2026
