2012-07-29 12 views
15

È necessario concatenare tutti i file javascript in una directory e tutte le relative sottodirectory in un unico file.File batch di Windows - Concatena tutti i file nelle sottodirectory

In questo momento ho un comando molto semplice in un file batch che concatena tutti i file corrispondenti in una directory in un unico file:

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

Tuttavia, questo funziona solo per quella directory, e non uno qualsiasi dei le sue sottodirectory. Come posso fare la stessa cosa e includere anche tutti i file corrispondenti nelle sottodirectory?

Grazie mille!

risposta

21

Dalla riga di comando è possibile utilizzare

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

si potrebbe desiderare voler eliminare prima eventuali concatenated.js esistenti prima di eseguire il comando precedente.

da un file batch le percentuali devono essere raddoppiate

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

EDIT
E 'un po' più efficace per mettere parentesi attorno l'intera istruzione e utilizzare un unico reindirizzamento sovrascrittura invece di reindirizzamento accodamento con ogni iterazione. Elimina anche la necessità di eliminare il file all'inizio.

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

o da lotto

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

Ah, eccellente, grazie mille per aiutare !! –

+0

Il tuo ultimo esempio "o da batch" ha bisogno di% F cambiato in %% F, o almeno lo fa su win xp. – Mica

+0

@Mica - Sì, tutto risolto. Grazie – dbenham

1

Io non sono a conoscenza di un approccio per farlo da un file batch, ma si potrebbe usare uno strumento come minify

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

sia per combinare i file JavaScript e anche loro minify (ad esempio rimuovendo commenti e spazio bianco non necessario).

Ci sono alcuni strumenti simili per una varietà di ambienti di programmazione.

Problemi correlati