Limitación de la cadena de línea de comandos de línea de comandos (cmd.exe)

Resumen

Este artículo explica la limitación de la longitud de las cadenas que utiliza desde la línea de comandos en el símbolo del sistema (Cmd.exe) y los métodos que puede utilizar para solucionar esta limitación.

Más información

En equipos que ejecuten Microsoft Windows XP o posterior, la longitud máxima de la cadena que se puede utilizar en el símbolo del sistema es de 8191 caracteres. En equipos que ejecutan Microsoft Windows 2000 o Windows NT 4.0, la longitud máxima de la cadena que se puede utilizar en el símbolo del sistema es de 2047 caracteres.

Esta limitación se aplica a la línea de comandos, las variables de entorno individuales (por ejemplo, la variable PATH) que heredan otros procesos y todas las expansiones de las variables de entorno. Si utiliza el símbolo del sistema para ejecutar archivos por lotes, esta limitación también se aplica a su procesamiento.

Ejemplos

La lista siguiente proporciona algunos ejemplos de cómo se aplica esta limitación a los comandos que se ejecutan en el símbolo del sistema y los comandos que se utiliza en un archivo por lotes.
  • En el símbolo del sistema, la longitud total de la línea de comandos que utiliza en el símbolo no puede contener más de 2047 ó 8191 caracteres (según corresponda al sistema operativo):
    cmd.exe /k archivoEjecutable.exe parámetro1, parámetro2 ... Parametron
  • En un archivo por lotes, la longitud total de la línea de comandos que se utiliza en el archivo por lotes no puede contener más de 2047 ó 8191 caracteres (según corresponda al sistema operativo):
    cmd.exe /k archivoEjecutable.exe parámetro1, parámetro2 ... Parametron
    Esta limitación se aplica a las líneas de comandos que están contenidas en archivos de proceso por lotes cuando se utiliza el símbolo del sistema para ejecutar el archivo por lotes.
  • En el símbolo del sistema, la longitud total de
    Variabledeentorno1 después de expandir
    Variabledeentorno2 y
    Variabledeentorno3 no puede contener más de 2047 ó 8191 caracteres (según corresponda al sistema operativo):
    c: > set Variabledeentorno1=Variabledeentorno2Variabledeentorno3
  • En un archivo por lotes, la longitud total de la línea de comandos siguiente después de expandir las variables de entorno en la línea de comandos no puede contener más de 2047 ó 8191 caracteres (según corresponda al sistema operativo):
    ExecutableFile.exe parameter1parameter2
  • Aunque la limitación de Win32 para las variables de entorno es de 32.767 caracteres, símbolo del sistema omite cualquier variable de entorno que se hereda del proceso primario y es más largos que sus propias limitaciones de 2047 ó 8191 caracteres (según corresponda al sistema operativo). Para obtener más información acerca de la función SetEnvironmentVariable , visite el siguiente sitio Web de Microsoft:

Cómo evitar la limitación

Para evitar la limitación, utilice uno o varios de los métodos siguientes (según corresponda a su situación):
  • Modifique los programas que requieran líneas de comandos largas para que utilicen un archivo que contiene la información de parámetro y, a continuación, incluir el nombre del archivo en la línea de comandos.

    Por ejemplo, en lugar de utilizar el .exe archivoEjecutable parámetro1 parámetro2 ... Parametron línea de comandos en un archivo por lotes, modificar el programa para utilizar una línea de comandos similar a la siguiente línea de comandos, donde
    ArchivoDeParámetros es un archivo que contiene los parámetros requeridos (parámetro1 parámetro2
    ...ParameterN):
    ExecutableFile.exe c:\temp\ParameterFile.txt
  • Modifique los programas que utilicen variables de entorno grandes para que las variables de entorno contienen menos de 2047 o 8191 caracteres (según corresponda al sistema operativo).

    Por ejemplo, si la variable de entorno PATH contiene más de 2047 ó 8191 caracteres (según corresponda al sistema operativo), utilice uno o varios de los métodos siguientes para reducir el número de caracteres:
    • Utilice nombres más cortos para las carpetas y archivos.
    • Reducir la profundidad de los árboles de carpetas.
    • Almacenar archivos en menos carpetas para que se necesiten menos en la variable de entorno PATH.
    • Investigue posibles métodos que puede utilizar para reducir la dependencia de PATH para encontrar los archivos .dll.
Propiedades

Id. de artículo: 830473 - Última revisión: 17 ene. 2017 - Revisión: 1

Comentarios