当サイトではアフィリエイト広告を利用しています。

【Windows】指定のファイルを一発で複数コピーする方法(連番コピー)

2023年4月19日

Q,ファイルを大量にコピーして各ファイルを連番のファイル名にしたい

Windows環境でファイルを大量にコピーして、コピーした各ファイルの名前を連番とかで揃えたいときって手作業でやると超面倒くさくないですか?

例えば、テンプレファイルを使って1ヶ月分(31個)コピーしたい時とかです。

省けるなら省きたい作業ですよね。。。

今回は複製のコピー作業をコマンド1発で解決しようと思います。

ファイルの複数コピーを手作業でやった場合の例

例として、「朝会_議事録テンプレート.txt」というファイルを31個コピーして

・朝会議事録1.txt
・朝会議事録2.txt
・朝会議事録3.txt



・朝会議事録30.txt
・朝会議事録31.txt

となるようにファイル名を修正するとなると、、、

まず、「朝会議事録_テンプレート.txt」というファイルをコピーしてその場に張り付けます。

「朝会_議事録テンプレート – コピー.txt」というファイルが作成されました。(この作業で作業時間は6.4秒経っています。)

次に「朝会_議事録テンプレート – コピー.txt」からファイル名を「朝会議事録1.txt」に書き換えます。

「朝会議事録1.txt」というファイル名に変更されました。(この作業で作業時間は6.0秒経っています。)

1つのファイルコピーとファイル名変更作業だけで12.4秒経過しており、これを寸分の狂いなく連続で31回繰り返したとしても合計で384.4秒(6.4分)かかる作業です。

月次作業だとしてもマジめんどくさい。。。

そこで、このめんどくさい作業をコマンド一発で完了させる方法を試してみます。

ファイルを複数にコピーする手順

コピー元のファイルがあるフォルダでコマンドプロンプトを起動

まずはコピーしたいファイルがあるフォルダを開きます。

開けたら以下の画像の様なアドレスバーをクリックします。

クリックしたら文字周りが青くなるのでその状態で「cmd」と打ち込みます。

上の画像の状態で「Enter」を押すとコマンドプロンプトという黒い画面が開きます。

ファイルを複数にコピーするコマンドを実行

コマンドプロンプトに以下のコマンドを打ち込みます。

for /l %i in (1,1,31) do copy /y コピー元ファイル.txt コピーファイル名%i.txt
//今回での例
for /l %i in (1,1,31) do copy /y 朝会_議事録テンプレート.txt 朝会議事録%i.txt

打ち込みが終わったら、「Enter」を押してコマンドを実行します。

実行結果を確認する為、フォルダ画面を確認します。

以下の画像は実行結果です。

コピーしたファイルの中身も確認してみます。

今回は例として「朝会議事録20.txt」で開いてみましたが、きちんとコピーできていました。

コマンド解説

for /l %i in (1,1,31) do copy /y 朝会_議事録テンプレート.txt 朝会議事録%i.txt

今回使用した上記のコマンドを基に解説します。

for /l %i in (1,1,31) do

この部分ではforコマンドを使ってdoの後に記述しているコマンドを繰り返して実行(ループ)しています。

このforコマンドの中に「/l %i in (1,1,31)」との記述がありますが、これは繰り返し実行の中で「i」という変数の値を1から31まで1ずつ増やして代入しています。
ループの1周目は「i」の値が1、2週目は「i」の値が2・・・31周目は「i」の値が31といった感じです。
31まで行ったらループが終了します。

copy /y 朝会_議事録テンプレート.txt 朝会議事録%i.txt

この部分では実際にファイルコピーをしています。

朝会_議事録テンプレート.txt
この部分では、コピーしたいファイルのファイル名を記載します。

朝会議事録%i.txt
この部分ではコピー後のファイルのファイル名を記載します。
「%i」ではfor文中で作成している変数「i」の値を使ってファイル名の連番を作成しています。
そのため、1周目は朝会議事録1.txt、2周目は朝会議事録2.txt・・・31周目は朝会議事録31.txtというファイル名でコピー出来るようになっています。

 

コマンドの変更ポイント

コマンドでは以下の部分を自分の環境に変更してご利用ください。

・for文の「31」・・・コピーしたい個数

・朝会_議事録テンプレート.txt・・・コピー元のファイル名

・「朝会議事録%i.txt」の「朝会議事録」・・・コピーした後のファイル名(%i.txtはfor文で作成した連番とファイル拡張子です。)

 

以上、ファイルを複数ファイルにコピーする方法でした!