Командный файл 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, так и для их минимизации (например, путем удаления комментариев и ненужного пробела).
Существует множество подобных инструментов для различных сред программирования.