CSVファイルの空データ部分に文字を入れるバッチファイル [コンピュータ]
CSVファイルの空データ部分に文字を入れるバッチファイル
2023/12/05
WindowsのバッチファイルでCSVファイルを操作する場合に空データがあるとそこを飛ばして処理されてしまってなんかうまく動作しないので、空データ部分に適当な文字を入れるためのバッチファイル。
今回の作成例では元ファイルで使用しないデータとして●を指定している。
バッチ実行前のイメージ「,2,3,4,,,,,9,」
バッチ実行後のイメージ「●,2,3,4,●,●,●,●,9,●」
元のcsvファイル名を、input.csv
処理後のcsvファイル名を、output.csv
バッチファイルでの処理内容としては
1、行の最初が「,」であれば「●,」に書き換え
2、行の最後が「,」であれば「,●」に書き換え
3、途中に「,,」があれば「,●,」に書き換え
バッチファイル
----------
@echo off
setlocal enabledelayedexpansion
type nul>output.csv
for /f "usebackq delims=" %%a in (input.csv) do (
set "line=%%a"
if "!line:~0,1!"=="," set "line=●!line!"
if "!line:~-1!"=="," set "line=!line!●"
set "line=!line:,,=,●,!"
set "line=!line:,,=,●,!"
echo !line!>>output.csv
)
pause
----------
実行結果で文字化けする場合は文字コードが「ANSI」とか「Shift_JIS」かを確認する。
あとがき
素直にエクセルとか専用ソフトとかで処理すればいいかもだが何らかの理由でバッチファイルしか使えない場合のためにメモを残す。
2023/12/05
WindowsのバッチファイルでCSVファイルを操作する場合に空データがあるとそこを飛ばして処理されてしまってなんかうまく動作しないので、空データ部分に適当な文字を入れるためのバッチファイル。
今回の作成例では元ファイルで使用しないデータとして●を指定している。
バッチ実行前のイメージ「,2,3,4,,,,,9,」
バッチ実行後のイメージ「●,2,3,4,●,●,●,●,9,●」
元のcsvファイル名を、input.csv
処理後のcsvファイル名を、output.csv
バッチファイルでの処理内容としては
1、行の最初が「,」であれば「●,」に書き換え
2、行の最後が「,」であれば「,●」に書き換え
3、途中に「,,」があれば「,●,」に書き換え
バッチファイル
----------
@echo off
setlocal enabledelayedexpansion
type nul>output.csv
for /f "usebackq delims=" %%a in (input.csv) do (
set "line=%%a"
if "!line:~0,1!"=="," set "line=●!line!"
if "!line:~-1!"=="," set "line=!line!●"
set "line=!line:,,=,●,!"
set "line=!line:,,=,●,!"
echo !line!>>output.csv
)
pause
----------
実行結果で文字化けする場合は文字コードが「ANSI」とか「Shift_JIS」かを確認する。
あとがき
素直にエクセルとか専用ソフトとかで処理すればいいかもだが何らかの理由でバッチファイルしか使えない場合のためにメモを残す。
コメント 0