FOR循环参数更改其读取位置

时间:2018-08-29 13:15:49

标签: batch-file for-loop

我要遍历 File_1 并检查第四列。如果不为空,请写入 File_2

这里是 Files_1

1;2;3;;;;;;;10
1;2;3;4;;;;;;10
1;2;3;;5;;;;;10

这是我的批处理文件:

for /F "delims=; tokens=1-10" %%A in (File_1.txt) do (
    if "%%D" NEQ "" (
        echo hello World %%D >>File_2.txt
    )
)

这是 File_2 中的内容:

hello World 10 
hello World 4 
hello World 5 

为什么它并不总是在第四栏中阅读?

我期望的结果是:

hello World 4

我如何设法得到这个结果?

1 个答案:

答案 0 :(得分:0)

在评论中回答了您的问题,并提出了解决方案时,我想我可以提供一种替代方法:

@Echo Off
SetLocal EnableDelayedExpansion
For /F "UseBackQ Delims=" %%A In ("File_1.txt") Do Call :Sub "%%A" 
Pause
GoTo :EOF

:Sub
Set "Line=%~1"
Set "i=1"
Set "Token!i!=%Line:;="&Set/A i+=1&Set "Token!i!=%"
If Defined Token4 >>"File_2.txt" Echo Hello World %Token4%
Exit /B