script run how example create commands batch bat windows batch-file

run - windows batch file virus



El error "LĂ­nea de entrada es demasiado largo" en el archivo BAT (5)

Tengo un problema al ejecutar un archivo bat. Después de un tiempo de ejecución, aparece el error "la línea de entrada es demasiado larga".

La estructura del archivo bat es simple. Hay un archivo principal de bat que llama a otros 10 archivos bat que son responsables de actualizar los datos de los módulos de mi sistema. En la actualización de los archivos bat de datos hay muchas llamadas para un comando (archivo .cmd) de mi sistema que es responsable de actualizar los datos a través de algunos cálculos.

El punto es que cuando el proceso se estaba ejecutando en un servidor de Windows 2003 estaba bien. Sin errores.

Luego, cuando se actualizó a Windows 2008 Server, ejecuté el archivo bat principal, varias horas después recibí el error "La línea de entrada es demasiado larga". No puedo ejecutar ningún comando incluido en los palos de datos actualizados manualmente en esa ventana de cmd. Pero si cierro la ventana de cmd y abro una nueva, puedo ejecutar los comandos sin errores.

¿Alguien tuvo el mismo problema? O una solución?

Gracias por adelantado.


Hay un artículo de la base de conocimiento de Windows sobre este tema. No mencionan el servidor de Windows 2008, pero mencionan la diferencia de tamaño entre otras versiones del sistema operativo, por lo que no sería sorprendente que haya una diferencia entre 2003 y 2008.

En cuanto a las soluciones al problema, algunas de sus sugerencias incluyen:

  • Modifique los programas que requieren largas líneas de comando para que usen un archivo que contenga la información del parámetro y luego incluya el nombre del archivo en la línea de comando.
  • Use nombres más cortos para carpetas y archivos.
  • Reduzca la profundidad de los árboles de carpetas.

Puede leer el artículo completo si desea ver qué más tienen para decir, pero esas fueron las sugerencias que más probablemente se apliquen a usted.


He tenido este mismo problema al ejecutar un script de construcción en una ventana de cmd. Después de 13 veces, recibí el mismo error. El script de compilación tenía que asegurarse de que vcvarsall.bat se ejecutara, por lo que ejecutaba vcvarsall.bat cada vez.

vcvarsall.bat no es lo suficientemente inteligente como para agregar cosas a la path si aún no están allí, por lo que se agregaron varias entradas duplicadas.

Mi solución fue agregar una verificación if-defined en una variable de entorno que sé que es establecida por vcvarsall.bat ...

if not defined DevEnvDir ( call vcvarsall.bat )

Verifique la variable de entorno de su ruta después de cada ejecución y vea si está creciendo. Si es así y hay duplicados, tendrá que ser inteligente para agregar cosas a la path . Hay varias formas de ser inteligente al respecto.


Me di cuenta de que esto es bastante viejo, pero el otro problema con el que me topé fue tener un "" al final del comando al que estaba llamando. Estaba intentando llamar

"C: / Archivos de programa (x86) / Microsoft Visual Studio 12.0 / Common7 / Tools .. / IDE / CommonExtensions / Microsoft / TestWindow / vstest.console.exe" "

Si lo notas, tengo dos "al final de la línea. Esto estaba causando mis problemas (Notepad ++ lo incluyó cuando escribí las comillas). Se eliminó eso, todo bien. De nuevo, puede que no sea tu problema, pero si alguien más viene buscando información y nada más funciona, mira esto :)


Me encontré con este error por primera vez después de ejecutar el mismo conjunto de comandos (detener / iniciar un servidor de aplicaciones) varias veces.

El error se detuvo cuando abrí una nueva línea de comando y probé los comandos desde la nueva consola de línea de comando.


También puede suceder si los espacios en su archivo (carácter ansi 0x20 ) son espacios que no se rompen (tuve 0xA0 , pero el suyo puede variar). Esto puede suceder si copia / pega de Internet a un editor con conocimiento UTF-8.

El resultado depende de la página de códigos actual de Windows, su editor y tal. Arreglar:

  1. Use un editor hexadecimal
  2. Mira cómo se representan los espacios
  3. Busque y reemplace su representación

HxD para buscar y reemplazar 0xA0 a 0x20 .