Limitación de las cadenas de línea de comandos en el símbolo del sistema (Cmd.exe)

Seleccione idioma Seleccione idioma
Id. de artículo: 830473 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo se explica la limitación de la longitud de las cadenas que se usan en el símbolo del sistema de la herramienta Cmd.exe y los métodos que puede utilizar para evitarla.

Más información

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

Esta limitación se aplica a la línea de comandos, a las variables de entorno individuales (como la variable PATH) que heredan otros procesos y a 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

En la lista siguiente se ofrecen algunos ejemplos de cómo se aplica esta limitación a los comandos que se ejecutan en el símbolo del sistema y a los que se usan en un archivo por lotes.
  • En el símbolo del sistema, la longitud total de la línea de comandos siguiente no puede contener más de 2047 ó 8191 caracteres (según corresponda al sistema operativo):
    cmd.exe /k archivoEjecutable.exe parámetro1, parámetro2 ... parámetroN
  • En un archivo por lotes, la longitud total de la línea de comandos siguiente no puede contener más de 2047 ó 8191 caracteres (según corresponda al sistema operativo):
    cmd.exe /k archivoEjecutable.exe parámetro1, parámetro2 ... parámetroN
    Esta limitación se aplica a las líneas de comandos contenidas en los archivos 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 pueden 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):
    archivoEjecutable.exe parámetro1parámetro2
  • Aunque la limitación de Win32 para las variables de entorno es de 32.767 caracteres, el símbolo del sistema omite cualquier variable de entorno que se herede del proceso primario y que supere 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:
    http://msdn2.microsoft.com/en-us/library/ms686206.aspx

Cómo evitar la limitación

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

    Por ejemplo, en lugar de utilizar la línea de comandos archivoEjecutable.exe parámetro1 parámetro2 ...parámetroN en un archivo por lotes, modifique el programa para que use una línea de comandos que sea similar a la siguiente, donde archivoDeParámetros es un archivo que contiene los parámetros necesarios (parámetro1 parámetro2 ...parámetroN):
    archivoEjecutable.exe c:\temp\archivoDeParámetros.txt
  • Modifique los programas que utilicen variables de entorno grandes para que éstas contengan menos de 2047 ó 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.
    • Reduzca la profundidad de los árboles de carpetas.
    • Almacene los archivos en menos carpetas para 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: miércoles, 9 de mayo de 2007 - Versión: 1.3
La información de este artículo se refiere a:
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Web Edition
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Workstation 4.0 Developer Edition
Palabras clave: 
kbinfo KB830473

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com