Limitación de cadena de línea de comandos del símbolo del sistema (Cmd. exe)
En este artículo se describe la limitación de la longitud de las cadenas que se usan desde el símbolo del sistema en el símbolo del sistema (Cmd.exe). También proporciona métodos que puede usar para solucionar esta limitación.
Se aplica a: Windows Server 2012 R2, Windows Server 2008 R2 Service Pack 1, Windows 7 Service Pack 1
Número de KB original: 830473
La longitud máxima de la cadena que puede usar en el símbolo del sistema es de 8191 caracteres.
Esta limitación se aplica a:
- la línea de comandos
- variables de entorno individuales heredadas por otros procesos, como la variable PATH
- todas las expansiones de variables de entorno
Si usa el símbolo del sistema para ejecutar archivos por lotes, esta limitación también se aplica al procesamiento de archivos por lotes.
En los ejemplos siguientes se muestra cómo se aplica esta limitación a los comandos que se ejecutan en el símbolo del sistema y a los comandos que se usan en un archivo por lotes.
En el símbolo del sistema, la longitud total de la siguiente línea de comandos no puede contener más de 8191 caracteres:
cmd.exe /k ExecutableFile.exe parameter1, parameter2... parameterN
En un archivo por lotes, la longitud total de la siguiente línea de comandos no puede contener más de 8191 caracteres:
cmd.exe /k ExecutableFile.exe parameter1, parameter2... parameterN
Esta limitación se aplica a las líneas de comandos que se encuentran en archivos por lotes cuando se usa el símbolo del sistema para ejecutar el archivo por lotes.
En el símbolo del sistema, la longitud total de después de
EnvironmentVariable1
expandirEnvironmentVariable2
yEnvironmentVariable3
no puede contener más de 8191 caracteres:c:> set EnvironmentVariable1 = EnvironmentVariable2 EnvironmentVariable3
En un archivo por lotes, la longitud total de la siguiente línea de comandos después de expandir los parámetros no puede contener más de 8191 caracteres:
ExecutableFile.exe parameter1 parameter2
Aunque la limitación de Win32 para las variables de entorno es de 32 767 caracteres, el símbolo del sistema omite las variables de entorno que se heredan del proceso primario y tienen más de sus propias limitaciones de 8191 caracteres (según corresponda al sistema operativo). Para obtener más información sobre la
SetEnvironmentVariable
función, vea SetEnvironmentVariableA function.
Para evitar la limitación, use uno o varios de los métodos siguientes, según corresponda a su situación:
Modifique los programas que requieren líneas de comandos largas para que usen un archivo que contenga la información de parámetros y, a continuación, incluyan el nombre del archivo en la línea de comandos.
Por ejemplo, en lugar de usar la
ExecutableFile.exe Parameter1 Parameter2... ParameterN
línea de comandos en un archivo por lotes, modifique el programa para usar una línea de comandos similar a la siguiente línea de comandos, donde ParameterFile es un archivo que contiene los parámetros necesarios (parameter1 parameter2... ParameterN:ExecutableFile.exe c:\temp\ParameterFile.txt
Modifique los programas que usan variables de entorno grandes para que las variables de entorno contengan menos de 8191 caracteres.
Por ejemplo, si la variable de entorno PATH contiene más de 8191 caracteres, use uno o varios de los métodos siguientes para reducir el número de caracteres:
- Use nombres más cortos para carpetas y archivos.
- Reduzca la profundidad de los árboles de carpetas.
- Almacene archivos en menos carpetas para que se requieran menos carpetas en la variable de entorno PATH.
- Investigue los posibles métodos que puede usar para reducir la dependencia de PATH para localizar .dll archivos.