批处理文件:无法将循环计数器值连接到常量字符串

批处理文件:无法将循环计数器值连接到常量字符串

这是此处问题的延续。批处理脚本:将多个文件夹中的多个文件合并为一个文件

我有 20 个名为“new.csv”的文件,它们位于同一父目录中的 20 个文件夹中。我想将它们全部合并为一个文件。因此,我想分两步完成。

  1. 我正在使用 XCOPY 将每个文件夹的每个 new.csv 复制到父文件夹中的 new1、new2、new3 等。如果我可以这样做,在我的父文件夹中,我有 20 个 csv,new1、new2..new20.csv。

  2. 然后,我只需执行copy new*.csv final.csv。因此,这是我编写的代码,用于new.csv从父文件夹中的每个文件夹复制这些内容。

    setlocal EnableDelayedExpansion
    set /a i=0
    FOR /D /R %%G in ("*") DO (
    
    cd %%G 
    set  /a i=i+1
    XCOPY new.csv ..\new%!i!%.csv )
    

问题在于创建新文件。我想创建 20 个文件,名称分别为 new1.csv、new2.csv、new3.csv...new20.csv。计数器值正在增加,但我无法将其附加到“new”中。你能帮忙吗?

答案1

谢谢!我会用自己能用的方法回答自己。我将最后一行替换成这样。

 XCOPY new.csv ..\new_!i!.csv 

答案2

如果您想要合并 CSV 中列出的各个 CSV 的完整路径,请使用以下命令:

for /r %f in (*.csv) do @echo "%f" >> New.csv && echo. >> New.csv && type "%f" >> New.csv && echo. >> New.csv && echo --- >> New.csv

如果您只想要 CSV 内容,请使用以下命令:

for /r %f in (*.csv) do @type "%f" >> New.csv && echo. >> New.csv

echo.在文件中添加换行符,如果不需要进一步缩短命令,可以将其删除。

这些命令必须在父目录中输入。如果您在批处理文件中使用它们,只需记住将每个 % 符号重复两次即可。

相关内容