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

Chr*_*row 16 windows batch-file

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

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

copy C:\javascripts\*.js concatenated.js
Run Code Online (Sandbox Code Playgroud)

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

非常感谢!

dbe*_*ham 23

从命令行,您可以使用

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

您可能希望在运行上述命令之前先删除任何现有的concatenated.js.

从批处理文件中,百分比需要加倍

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

编辑
在整个语句中放置括号并使用单个覆盖重定向而不是在每次迭代时附加重定向更有效.它还消除了在开始时删除文件的需要.

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

或批量生产

@echo off
>concat.js (for /r "c:\javascripts" %%F in (*.js) do type "%%F")
Run Code Online (Sandbox Code Playgroud)

  • 我们也可以读取子文件夹中的文件吗? (3认同)