2012-07-29 39 views
15

Cần ghép tất cả các tệp javascript trong một thư mục và tất cả các thư mục con của nó vào một tệp.Tập tin bó Windows - Kết hợp tất cả các tệp trong thư mục con

Ngay bây giờ tôi có một lệnh rất đơn giản trong một tập tin batch concatenates tất cả các tập tin phù hợp trong một thư mục vào một tập tin:

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

Tuy nhiên, điều này chỉ làm việc cho một trong những thư mục và không phải bất kỳ các thư mục con của nó. Làm thế nào tôi có thể làm điều tương tự và cũng bao gồm tất cả các tập tin phù hợp trong các thư mục con?

Cảm ơn bạn rất nhiều!

Trả lời

21

Từ dòng lệnh, bạn có thể sử dụng

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

Bạn có thể muốn muốn đầu tiên xóa bất kỳ concatenated.js hiện trước khi bạn chạy lệnh trên.

Từ một tập tin thực thi các phần trăm cần phải được tăng gấp đôi

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

EDIT
Đó là hiệu quả hơn một chút để đặt dấu ngoặc xung quanh toàn bộ tuyên bố và sử dụng một chuyển hướng ghi đè đơn thay vì chuyển hướng append với mỗi lần lặp lại. Nó cũng giúp loại bỏ sự cần thiết phải xóa các tập tin trong đầu.

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

hoặc từ hàng loạt

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

Ah, tuyệt vời, cảm ơn rất nhiều cho bạn giúp !! –

+0

Ví dụ cuối cùng của bạn "hoặc từ lô" cần% F được thay đổi thành %% F hoặc ít nhất là trên win xp. – Mica

+0

@Mica - Đúng, tất cả đã được sửa. Cảm ơn – dbenham

1

Tôi không nhận thức được một cách tiếp cận để làm điều đó từ một tập tin thực thi, nhưng bạn có thể sử dụng một công cụ như giảm bớt

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

cho cả hai kết hợp các file JavaScript và cũng rút gọn chúng (ví dụ như bằng cách loại bỏ bình luận và không gian trắng không cần thiết).

Có khá nhiều công cụ tương tự cho nhiều môi trường lập trình khác nhau.

Các vấn đề liên quan