ファイルの名前とファイルの数をユーザーが指定し自動作成するバッチファイル

BASH,bat,バッチ

ファイルの「名前」と作りたい「数」を入力するだけで、同じ名前が入ったファイルを作れると便利だと思い、作成したので紹介します。

ちなみ、ファイルだけでなくフォルダを作ることも可能なので、別記事で紹介します。

テキストファイルを複数作る場合のコード

下記のように、ファイルの名前は共通で、数だけ連番で作るケースのコードを紹介します。

ファイル名_1

ファイル名_2

……

@echo off
echo ファイル名を記載してください。
set /p failname=
echo ファイル数を記載してください。
set /p number=
for /l %%a in (1,1,%number%) do (type nul>>%failname%_%%a%.txt)

このバッチファイルを使って、ファイルを作ります。

このとおり、名前と作りたい数を記載するだけ一瞬で任意のファイルが出来上がります。

解説は下記のとおりです。

このコードを作成してみてから考えたポイントはfol /lの繰り返し回数の書き方と変数の参照の仕方です。

forコマンドで指定の回数を繰り返しています。繰り返す回数は変数によって、指定されます。この変数はユーザーの入力して数字になりますので、「5」であれば5回、「10」であれば10回となります。

また、ファイル名もユーザーが変数で指定しており、ファイル名に変数が指定されています。

  • 3、5行目のset /pでユーザーに入力してもらいます。ユーザーに入力してもらった文字と値が変数に格納されます。
  • for /lコマンドで一定の数の繰り返し作業を行います。
  •  (1,1,%number%)で一定の数を繰り返します。1つ目の1は1から始めるという意味。仮に0とした場合、0から始まります。2つ目の1で
  • type nul>>はファイルを作るコードです。typeコマンドはファイルの内容を参照するコードでnulは空という意味のコードです。type nulで「空のファイルの内容を参照する」という意味になります。>>はファイルを作るというのコードです。type nul>>で「空のファイルの内容を参照して、ファイルを作る」となり、読み砕くと「ファイルを作る」となります。
  • >>の右側の%failname%_%%a%.txtはファイルの名前となります。%failname%はユーザーが指定したファイルの名前です。
  • %%a%には、(1,1,%number%)の内容が入っています。ユーザーが指定した数までファイルを作成します。

以上が各行の解説です。

ファイル名はいつも同じとして、数だけ指定したい場合

ファイルの名前を固定する場合は「%failname%」の名前を変更すればオッケーです。

例えば、ファイル名を「新潟」としたい場合は、下記のコードです。

@echo off
echo ファイル数を記載してください。
set /p number=
for /l %%a in (1,1,%number%) do (type nul>>新潟_%%a%.txt)

このコードの「新潟」という名前を変えれば、いつも使うファイル名で複数のファイルを指定することができます。

コメント

タイトルとURLをコピーしました