2012-07-29 19 views
15

Necesita concatenar todos los archivos javascript en un directorio y todos sus subdirectorios en un solo archivo.Archivo de proceso por lotes de Windows - Concatene todos los archivos en los subdirectorios

Ahora mismo tengo un comando muy simple en un archivo por lotes que concatena todos los archivos que coinciden en un directorio en un archivo:

copy C:\javascripts\*.js concatenated.js 

Sin embargo, esto sólo funciona para el directorio de uno y no cualquiera de sus subdirectorios. ¿Cómo puedo hacer lo mismo y también incluir todos los archivos coincidentes en los subdirectorios?

¡Muchas gracias!

Respuesta

21

Desde la línea de comandos que puede utilizar

for /r "c:\javascripts" %F in (*.js) do @type "%F" >>concatenated.js 

Es posible que desee que desee eliminar en primer lugar todos concatenated.js existentes antes de ejecutar el comando anterior.

Desde un archivo por lotes los porcentajes deben ser duplicado

@echo off 
del concatenated.js 
for /r "c:\javascripts" %%F in (*.js) do type "%%F" >>concatenated.js 

EDITAR
Es un poco más eficiente de poner paréntesis alrededor de toda la declaración y utilizar un solo redirección de sobreescritura en lugar de redirección de anexión con cada iteración. También elimina la necesidad de eliminar el archivo al principio.

>concat.js (for /r "c:\javascripts" %F in (*.js) do @type "%F") 

o de lote

@echo off 
>concat.js (for /r "c:\javascripts" %%F in (*.js) do type "%%F") 
+0

Ah, excelente, muchas gracias por su ayuda !! –

+0

Su último ejemplo "or from batch" necesita% F cambiado a %% F, o al menos lo hace en win xp. – Mica

+0

@Mica - Sí, todo arreglado. Gracias – dbenham

1

No estoy al tanto de un enfoque de hacerlo desde un archivo por lotes, pero se puede usar una herramienta como Minify

http://code.google.com/p/minify/

tanto a combinar archivos JavaScript y también minify ellos (por ejemplo, eliminando comentarios y espacio en blanco innecesario).

Existen bastantes herramientas similares para una variedad de entornos de programación.

Cuestiones relacionadas