2行を1行に、(カンマ)区切りにするバッチファイル

2行単位にデータが繰り返されているテキスト(.txt)をCSV(.csv)に変換するポイントは、

1.forのループで1行ずつデータを読み込む。
2.ifの条件でその行がテキストの偶数行か奇数行か判定して、改行するかしないか分岐する。

ですが、ここで注意したいのが、for文の中での変数インクリメントです。

ちなみに、下記のようになりました。

@echo off

rem ドラッグ&ドロップで取得したパスからファイル名だけを変数「filename」に代入

set filename=%~n1

rem すでにファイルが存在していたらそのファイルを削除

if exist %filename%.csv del %filename%.csv

set COUNT=0
set C=2

setlocal ENABLEDELAYEDEXPANSION
for /f "delims=" %%a in (%filename%.txt) do (
  set line=%%a
  set /a amari=COUNT%%C
  if !amari! == 0 (
     (echo|set /p x=%%a,)>%filename%.csv
  ) else (
     echo !line: =,!>>%filename%.csv
  )
  set /a COUNT=COUNT+1
)
endlocal
 
echo txt → csv 完了
pause

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント