我有一个这样的csv文件
name,sex,age
venu,m,16
test,,22
[编辑]
名称也可以有逗号
"venu,gopal",m,16
我想处理性是否无关紧要并将其保存到另一个文件中。
我有这样的脚本
@Echo Off
For /F "usebackq tokens=1-3 delims=," %%a in (test.csv) Do (
echo %%a, %%b, %%c >> test-new.csv
)
但是对于第三条记录,我得到 %%b 作为 22 应该是空间。如何解决这个问题?
[编辑2]
我已经按照该链接进行了尝试。我不确定我做错了什么。我遇到了同样的问题。请检查一次。
@echo off
setlocal DisableDelayedExpansion
For /F "usebackq tokens=1-3 delims=" %%x in (C:\somefile.csv) Do (
setlocal EnableDelayedExpansion
set "var=%%x"
set "var=!var:"=""!"
set "var=!var:^=^^!"
set "var=!var:&=^&!"
set "var=!var:|=^|!"
set "var=!var:<=^<!"
set "var=!var:>=^>!"
set "var=!var:,=^,^,!"
set var=!var:""="!
set "var=!var:"=""Q!"
set "var=!var:,,="S"S!"
set "var=!var:^,^,=,!"
set "var=!var:""="!"
set "var=!var:"Q=!"
For /F "tokens=1-3 delims=," %%a in ("!var:"S"S=","!") Do (
endlocal
echo %%~a, %%~b, %%~c
setlocal EnableDelayedExpansion
pause
)
endlocal
)