複数のCSVファイルをマージ&ソートするバッチファイル
<スクリプトの流れ>
- 全てのCSVファイルの2行目以降(more +1)の空白行以外(findstr ".")をマージし、 一時ファイル(temp.txt)に出力
- CSVファイルの一つからヘッダ(タイトル)行のみ取り出して all.csv に出力
- タイトル行が1024バイトを超えている場合に備えて、変数サイズに1024バイト制限のあるSETコマンドは使わず、echoコマンドからファイルに直接出力する
- ファイル名に空白スペースが含まれている場合に備えて、[usebackq]オプションでファイルセットのファイル名(%%a)を二重引用符で囲めるようにする
- タイトル行に空白スペースが含まれている場合に備えて、[delims]オプションで空白スペースを区切り文字にしない
- 一時ファイル(temp.txt)の中身を降順にソート(sort /r)して all.csv に追記
- 一時ファイル(temp.txt)を削除する
※ CSVファイルと同じフォルダに入れて実行する
CSV_Marge_Sort.bat
@echo off
set temp_file=temp.txt
set marge_file=all.csv
REM 1.
for %%a in (*.csv) do (
type "%%a" | more +1 | findstr "." >> %temp_file%
)
REM 2.
for %%a in (*.csv) do (
for /f "usebackq delims=" %%b in ("%%a") do (
echo %%b> %marge_file%
goto :label
)
)
:label
REM 3.
sort /r < %temp_file% >> %marge_file%
REM 4.
del /q %temp_file%
Author And Source
この問題について(複数のCSVファイルをマージ&ソートするバッチファイル), 我々は、より多くの情報をここで見つけました https://qiita.com/istoyo/items/e02a323a9ecde8e6fcf4著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .