Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article décrit la limitation de la longueur des chaînes que vous utilisez à partir de l’invite de commandes dans l’invite de commandes (Cmd.exe). Il fournit également des méthodes que vous pouvez utiliser pour contourner cette limitation.
S’applique à : Windows Server 2012 R2, Windows Server 2008 R2 Service Pack 1, Windows 7 Service Pack 1
Numéro de base de connaissances d’origine : 830473
Plus d’informations
La longueur maximale de la chaîne que vous pouvez utiliser à l’invite de commandes est de 8191 caractères.
Cette limitation s’applique à :
- la ligne de commande
- variables d’environnement individuelles héritées par d’autres processus, telles que la variable PATH
- toutes les expansions de variables d’environnement
Si vous utilisez l’invite de commandes pour exécuter des fichiers batch, cette limitation s’applique également au traitement des fichiers par lots.
Exemples
Les exemples suivants montrent comment cette limitation s’applique aux commandes que vous exécutez dans l’invite de commandes et aux commandes que vous utilisez dans un fichier de commandes.
Dans l’invite de commandes, la longueur totale de la ligne de commande suivante ne peut pas contenir plus de 8191 caractères :
cmd.exe /k ExecutableFile.exe parameter1, parameter2... parameterNDans un fichier de commandes, la longueur totale de la ligne de commande suivante ne peut pas contenir plus de 8191 caractères :
cmd.exe /k ExecutableFile.exe parameter1, parameter2... parameterNCette limitation s’applique aux lignes de commande contenues dans les fichiers batch lorsque vous utilisez l’invite de commandes pour exécuter le fichier batch.
Dans l’invite de commandes, la longueur totale d’une
EnvironmentVariable1fois que vous avez développéEnvironmentVariable2etEnvironmentVariable3ne peut pas contenir plus de 8191 caractères :c:> set EnvironmentVariable1 = EnvironmentVariable2 EnvironmentVariable3Dans un fichier de commandes, la longueur totale de la ligne de commande suivante après avoir développé les paramètres ne peut pas contenir plus de 8191 caractères :
ExecutableFile.exe parameter1 parameter2Même si la limitation Win32 pour les variables d’environnement est de 32 767 caractères, l’invite de commandes ignore toutes les variables d’environnement héritées du processus parent et sont plus longues que ses propres limitations de 8191 caractères (en fonction du système d’exploitation). Pour plus d’informations sur la
SetEnvironmentVariablefonction, consultez la fonction SetEnvironmentVariableA.
Comment contourner la limitation
Pour contourner la limitation, utilisez une ou plusieurs des méthodes suivantes, selon votre situation :
Modifiez les programmes qui nécessitent de longues lignes de commande afin qu’ils utilisent un fichier qui contient les informations de paramètre, puis incluez le nom du fichier dans la ligne de commande.
Par exemple, au lieu d’utiliser la
ExecutableFile.exe Parameter1 Parameter2... ParameterNligne de commande dans un fichier batch, modifiez le programme pour utiliser une ligne de commande similaire à la ligne de commande suivante, où ParameterFile est un fichier qui contient les paramètres requis (paramètre1 parameter2... ParameterN) :ExecutableFile.exe c:\temp\ParameterFile.txtModifiez les programmes qui utilisent des variables d’environnement volumineuses afin que les variables d’environnement contiennent moins de 8191 caractères.
Par exemple, si la variable d’environnement PATH contient plus de 8191 caractères, utilisez une ou plusieurs des méthodes suivantes pour réduire le nombre de caractères :
- Utilisez des noms plus courts pour les dossiers et les fichiers.
- Réduisez la profondeur des arborescences de dossiers.
- Stockez des fichiers dans moins de dossiers afin que moins de dossiers soient nécessaires dans la variable d’environnement PATH.
- Examinez les méthodes possibles que vous pouvez utiliser pour réduire la dépendance de PATH pour localiser des fichiers .dll.