delims
は、「区切りに使う文字列」じゃないです。
「区切りに使う文字(1文字限定)」を複数個並べた物です。
「文字で区切る」のは可能ですが「文字列で区切る」機能はありません。
文字列を1文字に置換してから区切ると良いでしょう。
これだとpiyo.csvの中身がhoge.txtと同じになってしまいます。
tokens=*
は、「全部」を意味するので、行がそのまま出て来て当然です。(先頭と末尾の区切り文字は削除されるが)
個別に扱うなら、tokens=1-9
などと番号を指定します。
CMD
1setlocal enabledelayedexpansion 2set fuga=!APP_ROOT!\piyo.csv 3type nul > !fuga! 4for /f "delims=" %%X in (hoge.csv) do ( 5 set X=%%X 6 set X=!X:iiiii=,! 7 for /f "tokens=3-10 delims=," %%A in ("!X!") do ( 8 echo %%A,%%B 9 echo %%C,%%D 10 echo %%E,%%F 11 echo %%G,%%H 12 )>> !fuga! 13)
1行が4組限定なら上記のように比較的簡単ですが、個数が定まらない場合は、
1組分ずつ削除しながらになるので、少し面倒です。
0 コメント