COPYコマンドでマージコピーするときは /b オプションを付けること

例えば入力フォルダに、次のように複数のCSVファイルがあり、これを1つに併合(マージ)したALL.csvというファイルを作成したいとします。

data1.csv
data2.csv
data3.csv
data4.csv
data5.csv

Windowsコマンドプロンプトには、ファイルをコピーする COPY コマンドがあり、そのマージコピー機能を利用することができます。

ワイルドカード(*)の使用例

copy *.csv WORK\ALL.csv

ファイル連結記号(+)の使用例

copy data1.csv+data3.csv+data5.csv WORK\135.csv

ワイルドカード(*)使用時のポイントは、コピー先を単一のファイルパスにすることであり、コピー先がフォルダの場合は、それぞれのファイルが別々にコピーされます。

COPY コマンドの留意点となりますが、上記のような併合(マージ)コピーをした場合、コピー先ファイル(この例では ALL.csv)の末尾に、16進 1A(EOF)の制御コードが付加されてしまいます。

この16進 1Aは、xoBlosの中では扱えない(エラーとなる)手順がありますので、このような要件の場合は、COPY コマンドに /b(バイナリ)オプションを付けて処理するようにしてください。これで16進 1Aは付加されなくなります。

copy /b *.csv WORK\ALL.csv

copy /b data1.csv+data3.csv+data5.csv WORK\135.csv

このような複数CSVファイルや複数テキストファイルの併合(マージ)には便利ですね。

【xoBlos 外部アプリの実行手順での指定例】