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)
这是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)