Batch file 如何在批处理中使用FOR循环参数设置变量

Batch file 如何在批处理中使用FOR循环参数设置变量,batch-file,for-loop,set,Batch File,For Loop,Set,我需要循环一个文件,将值影响到一个变量,然后循环到第二个文件,并使用前面的变量: for /F "delims=, tokens=1-3" %%a in (Test_1.txt) do ( set Var1=%%b set Var2=%%c for /F "delims=, tokens=1-4" %%a in (Test_2.txt) do ( if "%%d"=="" ( echo %%a !var1!

我需要循环一个文件,将值影响到一个变量,然后循环到第二个文件,并使用前面的变量:

for /F "delims=, tokens=1-3" %%a in (Test_1.txt) do (
    set Var1=%%b
    set Var2=%%c
    for /F "delims=, tokens=1-4" %%a in (Test_2.txt) do (
        if "%%d"=="" (
            echo %%a           !var1!            !Var2!>>Test_3.txt
        )
    )
)

如何影响变量的第一个参数

根据您的评论,您甚至不需要延迟扩展:

每个循环必须有自己独特的令牌变量

for /F "delims=, tokens=1-3" %%a in (Test_1.txt) do (
    for /F "delims=, tokens=1-4" %%d in (Test_2.txt) do (
        if "%%e"=="" (
            echo %%d           %%a           %%b >> Test_3.txt
        )
    )
)

内部FOR不应使用
%%a
作为循环变量,就像外部FOR使用
%%a
%%b
%%c
作为三个令牌一样,但例如
%%d
和so
%%d
%%e
%%f
%%g
作为四个令牌。PS:我建议使用大写循环变量而不是小写。在命令提示窗口中运行
以获取/?
以在几页上显示帮助,并特别阅读有关修饰符的部分,您应该知道为什么将
%%a
用于
%%G
会更好,同时也会减少混淆。解决此问题很容易,但您确实意识到这不会逐行匹配,对吗?文件1中的每一行都将与文件2中的每一行相匹配。。第一行与第一行不匹配你的问题不太清楚。你想一行一行地并行读取你的文件吗?如果是这样,两个嵌套的
for/F
循环不是正确的选择…不,我想检查所有测试_2行中测试_1的第一行。然后检查所有测试_2行中测试_1的第二行,以此类推。