需要将一个目录中的所有 javascript 文件及其所有子目录连接到一个文件中。
现在我在一个批处理文件中有一个非常简单的命令,它将一个目录中的所有匹配文件连接到一个文件中:
copy C:\javascripts\*.js concatenated.js
但是,这仅适用于一个目录,而不适用于它的任何子目录。我怎样才能做同样的事情,并在子目录中包含所有匹配的文件?
非常感谢!
需要将一个目录中的所有 javascript 文件及其所有子目录连接到一个文件中。
现在我在一个批处理文件中有一个非常简单的命令,它将一个目录中的所有匹配文件连接到一个文件中:
copy C:\javascripts\*.js concatenated.js
但是,这仅适用于一个目录,而不适用于它的任何子目录。我怎样才能做同样的事情,并在子目录中包含所有匹配的文件?
非常感谢!
从命令行您可以使用
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 文件并缩小它们(例如,通过删除注释和不必要的空白)。
对于各种编程环境,有很多类似的工具。