同一ファイルを指定したファイル名で大量作成

おそらくもう少し作り込めば1回で完了すると思いますが、申込書やパラメータシートのフォーマット等、内容が同じだけどファイル名を任意(例えば氏名)に変更したい時の手順を記載します。またフォーマットの一部が変更になった場合に作成したファイルすべてを編集するのは大変ですので、2回のバッチ処理に分けています。

サンプルとして、format.xlsxファイルを元として、”氏名”.xlsxファイルを100ファイル作成します。

  • 作業用フォルダの作成

大量にファイルを作成することが前提のため、作業用のフォルダを作成します。
例えばデスクトップにtmpとします。
以降は作成したフォルダ配下で作業を実施する前提です。

  • 元ファイルの作成

複製の元になるファイルを準備します。
これは既にあるものを使用するか、自分で作成するしか無いです。
ここではformat.xlsxとして作成しました。

  • csvファイルの作成

元ファイルの名前を変更するデータとしてcsvファイルを作成します。
Excelで作成するのが簡単です。
ここではファイル名をsample.csvとして作成します。
中身は下図の通り作成してcsvファイルで保存します。

  • 元ファイルの連番ファイルをバッチファイルで作成

A列にリストを作成した連番ファイルをバッチファイルで作成します。
環境はWindowsになります。

@echo off
for /l %%n in (1,1,100) do (
copy format.xlsx %%n_format.xlsx
) 

(1,1,100)でファイル数を指定します。1から1ずつ足していき100まで作成するパラメータです。
format.xlsx %%n_format.xlsxはformat.xlsxを数値_format.xlsxにするパラメータです。
パラメータを変更して.batとしてバッチファイル保存して実行するとファイルが作成されます。
バッチファイル名は01-makefile.batにしています。
sample.csvのA列にあるファイル名と作成されたファイル名が一致していることを確認します。

  • 連番ファイルを任意のファイル名にバッチファイルで変更

B列のファイル名に前項で作成したファイルの名前を変更します。

FOR /F "tokens=1,2 delims=," %%a in (sample.csv) do REN %%a %%b

(sample.csv)で参照するcsvファイルを指定します。
パラメータを変更して.batとしてバッチファイル保存して実行するとファイルが作成されます。
バッチファイル名は02-rename.batにしています
下図のようにファイル名がリネームされます。

ご参考まで。

関連記事

TOP