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
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,)
) else (
echo !line: =,!>>%filename%.csv
)
set /a COUNT=COUNT+1
)
endlocal
echo txt → csv 完了
pause
この記事へのコメント