Windows批处理文件 - 连接子目录中的所有文件

时间:2012-07-29 17:53:21

标签: windows batch-file

需要将目录中的所有javascript文件及其所有子目录连接到一个文件中。

现在我在批处理文件中有一个非常简单的命令,它将一个目录中的所有匹配文件连接成一个文件:

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

但是,这仅适用于一个目录而不适用于其任何子目录。我怎么能做同样的事情,还包括子目录中的所有匹配文件?

非常感谢!

2 个答案:

答案 0 :(得分:23)

从命令行可以使用

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")

答案 1 :(得分:1)

我不知道从批处理文件中执行此操作的方法,但您可以使用minify之类的工具

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

既可以合并JavaScript文件,也可以缩小它们(例如删除注释和不必要的空格)。

有许多类似的工具可用于各种编程环境。