批处理文件:合并文本文件中的同名文本文件

我和

我使用以下命令创建了特定文本文件的文件路径列表

dir /b /s "xinfo.txt" > index.txt

所有这些文本文件都是CSV文件,我想将它们全部合并/附加在一起以创建一个名为“ sourcing_directory”的新文本文件。

我已经尝试了http://www.sidesofmarch.com/index.php/archive/2004/03/30/using-the-for-command-to-copy-files-listed-in-a-中提到的方法文本文件/,它使用:

for /f "delims=" %%i in (filelist.txt) do echo D|xcopy "\\server\share\folder\%%i" "c:\temp\%%i" /i /z /y

要将所有文本文件复制到一个文件夹中,这样我就可以使用“复制”合并所有文件。但是,由于index.txt的结构方式或所有文件都具有相同的名称,这似乎不起作用。

阿希普

要合并多个文件,可以执行以下操作:

rem // Prepare empty file:
> "merged.csv" rem/
rem // Merge the files:
for /F "delims=" %%F in ('dir /S /B "xinfo.txt"') do (
    copy /Y "merged.csv"+"%%F" "merged.csv" /B
)

这不会以任何方式检查文件内容,因此对于您的CSV输入数据,每个输入文件都以换行符终止,以获取有效的输出CSV文件。

如果不能保证这一点,则需要使用读取每个文件for /F,该文件将忽略空行,并且即使未以换行符终止,该文件也将读取最后一行:

rem // Write to output file:
> "merged.csv" (
    for /F "delims=" %%F in ('dir /S /B "xinfo.txt"') do (
        rem // Read input files line by line:
        for /F usebackq^ delims^=^ eol^= %%L in ("%%F") do echo(%%L
    )
)

要使用头文件,请尝试以下操作:

rem // Copy header file:
copy /Y "header.csv" "merged.csv"
rem // Merge the files:
for /F "delims=" %%F in ('dir /S /B "xinfo.txt"') do (
    copy /Y "merged.csv"+"%%F" "merged.csv" /B
)

或这个:

rem // Copy header file:
copy /Y "header.csv" "merged.csv"
rem // Append to output file:
>> "merged.csv" (
    for /F "delims=" %%F in ('dir /S /B "xinfo.txt"') do (
        rem // Read input files line by line:
        for /F usebackq^ delims^=^ eol^= %%L in ("%%F") do echo(%%L
    )
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Windows批处理文件中嵌入文本文件

在批处理文件中向文本文件添加迭代

批处理文件可将文件从文本文件中的源移动到另一个文本文件中的多个文件夹

如何使用批处理文件有选择地删除文本文件中的文本?

使用文本文件重命名文件夹中的批处理文件

批处理-编辑文本文件中的指定行

在批处理文件中包括文本文件(例如php include但带有批处理)

如何通过批处理文件从文本文件中删除不需要的行?

如何从批处理文件的文本文件中的行中删除多余的逗号?

批处理文件以逐行解析文本文件,然后检查该行是否存在于其他文本文件中

从文本文件读取值以在批处理文件变量中设置

批处理文件将缺少的文件输出到文本文件

处理文本文件

使用批处理文件编辑文本文件

批处理文件在.sql文本文件中执行mysql的if语句

批处理文件合并两个文本文件

如何将放入文本文件中的变量从批处理调用为批处理文件?

删除文本文件中带有“。”的行。批处理文件

批处理文件以从文本文件读取行

如何在批处理文件中打印多个文本文件

如何使用Windows批处理文件从文本文件中的文件列表中递归复制文件?

批处理文件仅使用整个单词在文本文件中查找和替换?

批处理文件为文本文件中的特定位置添加数字

批处理文件:比较 2 个文本文件并更新文本文件中的特定行

批处理文件将文本文件的最后 n 行复制到新的文本文件中

循环批处理文件,用于将不同文件夹中的多个文本文件合并到另一个不同文件夹中的一个文本文件

批处理文件用预定义的文本替换文本文件中的特定行

批处理文件脚本以在计数大于 > 时删除文本文件中的行

在批处理文件中使用powershell从文本文件中添加浮点数