Windowsでファイル名連番の空ファイルを作ってみた

こんにちは。東です。
今回も小ネタ的な内容となりますが、Windowsでファイル名が連番の空ファイルを作成する方法を記載致します。

ちなみに、ファイルを作成するにあたって、ざっくりと前提条件があったのでお伝えします。

  1. ファイル作成はコマンドで、且つ、ワンライナーで行いたい
  2. 連番とする箇所を自由に決めたい(test1.txt と 1_test.txt のどちらも作成可能なコマンドにしたい)

次に、上記条件を満たすコマンドは何か無いか…と探しておりましたところ、for文であれば条件を満たせそうということが分かりましたので、今回はfor文を利用してファイル作成を行います。


コマンドは下記となります。

cdコマンドにて、C:\temp ディレクトリ移動後にファイル作成しておりますが、(言わずもがなですが)for文のファイル指定をフルパスで書いてあげれば、ワンライナーでファイル作成が可能です。

次に、forコマンドですが、オプションの説明等、1つ1つ分けてご説明します。

・/l : ループ処理を実行するためのオプションです。

・%i : 変数の指定となります。Windowsの変数はアルファベット1文字で指定するみたいです。

・in (1,1,10) : こちらは左から順に、開始値、ステップ値、終了値、になります。

  1. 開始値:変数に導入される最初の数字を定義します。
    ★例:(5,1,10) として、上記コマンドを実行すれば test5.txt~test10.txt が作成されます。
  2. ステップ値:変数に導入される数字の間隔を定義します。
    ★例:(1,4,10) として、上記コマンドを実行すれば test1.txt,test5.txt,test9.txt が作成されます。
  3. 終了値:forコマンドが処理を終了する数字を定義します。
    ★例:(1,2,40) として、上記コマンドを実行すれば test1.txt,test3.txt,test5.txt … test39.txt が作成されます。

・do @type nul 1>test%i.txt : こちらでファイル作成を行っているのですが、下記を行っております。

  1. type nul でNull値を出力し、標準出力を test%i.txt ファイルへリダイレクト(データが何もないので、ファイル作成のみ行われる)
  2. @type とすることで、実行するコマンド文字列をプロンプト上に表示しない
    ※仮に1万ファイル作成する、となった場合に @ が無いと1万行のコマンド文字列が表示されます。。。
  3. この形式であれば、test%i.txt と指定すれば test1.txt の形に、%i_test.txt と指定すれば 1_test.txt の形でファイル作成ができます。


    今回の記事はこれで終わりとなります。
    閲覧頂きありがとうございました。

    本記事が皆様のお役に立てれば幸いです。

※記事の内容は保証はしておりません(執筆時期や実施環境により挙動が変わるものがある為)。
別途検証してご利用いただくことをおすすめいたします。