Командный файл Windows - объединить все файлы в подкаталоги

Необходимо объединить все файлы javascript в каталоге и все его подкаталоги в один файл.

Сейчас у меня очень простая команда в пакетном файле, который объединяет все соответствующие файлы в один каталог в один файл:

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

Однако это работает только для одного каталога, а не из его подкаталогов. Как я могу сделать то же самое, а также включить все соответствующие файлы в подкаталоги?

Большое спасибо!

Ответы

Ответ 1

В командной строке вы можете использовать

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

Вы можете захотеть сначала удалить все существующие concatenated.js, прежде чем запускать указанную выше команду.

Из командного файла проценты должны быть удвоены

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

ИЗМЕНИТЬ
Гораздо эффективнее поставить круглые скобки вокруг всего оператора и использовать одно перенаправление перезаписи вместо добавления перенаправления с каждой итерацией. Это также устраняет необходимость удаления файла в начале.

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

или из партии

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

Ответ 2

Я не знаю, как это сделать из командного файла, но вы можете использовать инструмент, например, minify

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

как для объединения файлов JavaScript, так и для их минимизации (например, путем удаления комментариев и ненужного пробела).

Существует множество подобных инструментов для различных сред программирования.