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的第二行,以此类推。