如何连接目录结构中具有特定扩展名的所有文件

如何连接目录结构中具有特定扩展名的所有文件

我正在尝试为 Windows 命令行编写一个简单的脚本,该脚本获取目录结构中的所有文件(同一文件夹中的文件以及该目录中的其他文件夹),并将它们连接成一个文件。在这种情况下,我只想抓取 javascript (*.js) 文件。

这是我在这个网站上看到类似问题后目前得到的答案。

@del pheonix.js
@FOR /R %%i in (*) do @type "%%i"\*.js >> pheonix.js

当我运行它时,我收到“目录名称无效”。您知道哪里出了问题吗?

答案1

*.js只需在循环中使用并从命令中for删除即可。\*.jstype

另外,我建议您对输出文件使用不同的扩展名(至少是暂时的),以避免for尝试将文件附加到其自身。

@echo off
del pheonix.js
FOR /R %%i in (*.js) do type "%%i" >> pheonix.tmp
ren pheonix.tmp pheonix.js

如果你@从批次中删除了 ,你就会很容易地自己看到问题所在:

D:\temp>FOR /R %i in (*) do type "%i"\*.js  1>>pheonix.js

D:\temp>type "D:\temp\aaa.js"\*.js  1>>pheonix.js
The directory name is invalid.

D:\temp>type "D:\temp\bbbb.js"\*.js  1>>pheonix.js
The directory name is invalid.

D:\temp>type "D:\temp\subfolder\cccc.js"\*.js  1>>pheonix.js
The directory name is invalid.

相关内容