- ベストアンサー
CSVファイルのバッチまたはVBでの編集
バッチおよびVBのドがつくほどの初心者です。 環境:Windows7 Pro 下記のような行が数百行ほど記載されているCSVファイル(xyz.csv)があります。 "(桁数不定の変数a)-(1桁の変数b)(1桁の変数c)","yyyymm" これをバッチまたはVBにて (1桁の変数b),(桁数不定の変数a),(1桁の変数c),yyyymm に自動的に変更したいと考えています。 例 "1234567890-12","201409" ↓ 1,1234567890,2,201409 「-」を「,」に変更したり「"」の削除、また桁数が不定でなければ指定の位置に「,」を入れることは出来そうなのですが 桁数が不定ということで、行き詰ってしまいました。 システム上 "(a)-(b)(c)","yyyymm"を "(a)-(b)(c)","(a)-(b)(c)","(a)-(b)(c)","yyyymm" に変更することは出来そうなので、先頭から検索して「-」の個数と位置で指定の文字列を消すという方法もあるのかなと思ったのですが こちらについてもやり方がまったくわからなくお手上げ状態になってしまいました。 (桁数固定なら、こちらで指定の位置だけ削除できればと思っていたのですが……) 上記処理を行えるバッチまたはVBで編集するコマンドをご教示いただければと思います。 ご回答お願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
バッチで、 @echo off (for /f "tokens=1,2 delims=," %%A in (input.txt) do call :sub %%A %%B)>out.txt goto :EOF :sub for /f "tokens=1,2 delims=-" %%C in ("%~1") do set C=%%C&set D=%%D echo %D:~0,1%,%C%,%D:~1,1%,%~2 goto :EOF
お礼
今更のお礼で申し訳ありません。 (お礼をしたつもりになっておりました……すいません) 頂戴した内容で問題なく動作しました! ありがとうございます!