需要将一个目录及其所有子目录中的所有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文件,又要对它们进行缩小(例如通过删除注释和不必要的空格)。
有很多类似的工具适用于各种编程环境。
type "%%F"
之前立即插入echo %%~dpF&
。 - dbenhamfor /r "C:\Users\sri00571\Desktop\test_spats" %F in (*.csv) do echo %%~dpF& @type "%F" >>concatenated.csv
。 - user1586957