プロが教える店舗&オフィスのセキュリティ対策術

 例えば、以下のような二行からなるCSVファイルが有ります。
TK,001,A,DC, ,5,12
TK,002,B,DC,13,6,13
 
バッチで、このファイルを読み込んで、以下のようなレイアウトでCSVファイルを出力したいです。
TK,A, ,12
TK,B,13,13

 しかし、一行目のデータに空の項目が発生していますので、
for /f "delims=, tokens=1-7" %%I in (sample.csv) do (

)
 で処理した場合、自動に、空の項目を飛ばし、次の項目を読み込みますので、出力ファイルは以下のようになってしまいます:
TK,A,5 ,12
TK,B,13,13
 
 こういうことを避けたいですが、なかなかいい方法が見つかりません。解決方法をご存知の方、教えていただけませんか?

A 回答 (1件)

お書きのように、カンマの間に空白がある場合は、ちゃんと空白が読み取られますよ。


空白が無く、カンマが連続しているときは、連続した全体を1つの区切り文字と認識しますけど。

もし、空白が無く連続したカンマを別々のカンマと認識したいなら、まず連続したカンマを、,@, のように間にデータ中に現れ得ない別の文字を入れた物に置換してから読み取って、出力の時に @ をまた空に戻すような方針で。
    • good
    • 5

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A