Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If statement 使用批处理文件将多个.csv文件按行合并为一个.csv文件_If Statement_For Loop_Batch File - Fatal编程技术网

If statement 使用批处理文件将多个.csv文件按行合并为一个.csv文件

If statement 使用批处理文件将多个.csv文件按行合并为一个.csv文件,if-statement,for-loop,batch-file,If Statement,For Loop,Batch File,我需要将四个CSV文件合并成一个CSV文件。如果我只想一个接一个地添加它们,这很容易,但是我需要让它们在CSV文件中并排出现。我知道所有四个文件都有相同数量的条目(在1000个条目范围内)。我一直在编写以下代码,这些代码适用于小文件,但对于长文件来说效率极低。有没有更简单的方法来完成同样的任务 @echo off setlocal enabledelayedexpansion Set R=1 Set T=1 Set Y=1 Set U=1 for /f %%a in (test1.txt) do

我需要将四个CSV文件合并成一个CSV文件。如果我只想一个接一个地添加它们,这很容易,但是我需要让它们在CSV文件中并排出现。我知道所有四个文件都有相同数量的条目(在1000个条目范围内)。我一直在编写以下代码,这些代码适用于小文件,但对于长文件来说效率极低。有没有更简单的方法来完成同样的任务

@echo off
setlocal enabledelayedexpansion
Set R=1
Set T=1
Set Y=1
Set U=1
for /f %%a in (test1.txt) do (
    set I=!R!
    for /f %%b in (test2.txt) do (
        set J=!T!
        for /f %%c in (test3.txt) do (
            set K=!Y!
            for /f %%d in (test4.txt) do (
                set L=!U!
                If !I!==!J! If !J!==!K! If !K!==!L! echo %%a,%%b,%%c,%%d >> TestComplete.txt
                Set /a U=U+1
            ) 
            Set U=1
            Set /a Y=Y+1
        )
        Set Y=1
        Set /a T=T+1
    )
    Set T=1
    Set /a R=R+1
)
注意:我知道我粘贴的代码使用的是.txt文件,而不是.csv文件。我想对一方有效的东西对另一方有效

同样,只要文件很小,上面的代码似乎工作得很好。当然,当文件(在本例中为test1.txt)包含大约1000行文本时,我会遇到麻烦

是GNU(类Unix)工具到Windows的端口集合,它包含
粘贴
,这正是您想要的。然而,我感觉你更喜欢原生Windows的答案,我已经想出了一个,但它并不漂亮。从开始并将其条带化到coljoin.bat:

@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%a in (%1) do (
    set /p line=
    echo !line!, %%a
)
您可以通过以下方式连接四个文件:

type a.txt | coljoin b.txt | coljoin c.txt | coljoin d.txt > TestComplete.txt

所需时间应随文件长度线性增加,以避免解决方案的急剧减速。但是,当所有文件的行数不相等时,此解决方案的故障模式不好。通常会提示用户输入缺少的行

这些文件有头吗?如果没有,您可以简单地使用“复制”命令将它们组合起来。@a_horse_和_no_名称:这将实现“全部联合”。但他们想要一种“加入rownum”。