当delim为','时,批处理脚本跳过.CSV中的空白条目

Sal*_*ode 2 for-loop batch-file batch-processing

我有一个.CSV,我试图从数据中创建另一个文件,但是当我运行它时,它会跳过空白条目.例如,如果一条线是 value,value,value,,,value ,我试图获得第4列,它将吐出第6列.大概是因为它是下一个有效值.我不希望它跳过空白条目,因为它可能弄乱我正在尝试制作的表格.有谁知道如何解决这个问题?(欢迎任何提示,因为我吮吸批处理脚本)

这是我的脚本:

FOR /F "tokens=1,2,3,4,5,6,7,8,9,10,11,12,13,14 delims=," %%a in (file.csv) DO (
    echo %%a %%b %%c %%d %%e %%f %%g %%h %%i %%j %%k %%l %%m %%n
)
pause
Run Code Online (Sandbox Code Playgroud)

jeb*_*jeb 6

这是FOR/F循环的标准行为,连续的delims仅用作一个分隔符.
但是你可以使用第二个FOR/F的变通方法.
使用另一个字符为每个列添加前缀,将该行拆分为delim并删除前缀.

setlocal EnableDelayedExpansion
FOR /F "delims=" %%L in (test.bat) DO (
    set "line=%%L,,,,,,,,"
    set "line=#!line:,=,#!"
    FOR /F "tokens=1,2,3,4 delims=," %%a in ("!line!") DO (
        set "param1=%%a"
        set "param2=%%b"
        set "param3=%%c"
        set "param4=%%d"
        set "param1=!param1:~1!"
        set "param2=!param2:~1!"
        set "param3=!param3:~1!"
        set "param4=!param4:~1!"
        echo !param1! !param2! !param3! !param4!
    )
)
Run Code Online (Sandbox Code Playgroud)