Windowsbatch file – 连接子目录中的所有文件

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

现在我在batch file中有一个非常简单的命令,它将一个目录中的所有匹配文件连接到一个文件中:

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

但是,这只适用于一个目录,而不适用于其任何子目录。 我怎样才能做到这一点,也包括在子目录中的所有匹配的文件?

非常感谢!

Solutions Collecting From Web of "Windowsbatch file – 连接子目录中的所有文件"

从命令行你可以使用

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

我不知道从批处理文件做到这一点,但你可以使用像minify一样的工具

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

都结合JavaScript文件,也缩小它们(例如通过删除评论和不必要的空白)。

对于各种编程环境,有相当多的类似工具。