私はこのような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
)
しかし、3番目のレコードでは、%%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
)