asamiのメモ帳

作ったバッチ/連番のフォルダを作成するバッチ

連番のフォルダを作成します


@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION

ECHO 設定してください
 SET /P PREFIX= 接頭語:
 SET /P NUM= フォルダ数:
 SET /P PAD= シーケンス桁数:
 SET /P START= 開始番号:

 SET COUNT=0

:LOOP
 IF %COUNT% == %NUM% (
  GOTO EXITLOOP
 )
 SET FOLDER=0000000000%START%
 SET FOLDER=%PREFIX%!FOLDER:~-%PAD%!
 MKDIR %FOLDER%

 SET /A COUNT+=1
 SET /A START+=1
 GOTO LOOP

:EXITLOOP
 EXIT

例)
接頭語:TEST-
フォルダ数:5
シーケンス桁数:4
開始番号:1

で設定すると、
このバッチが置いてあるところに
TEST-0001, TEST-0002, TEST-0003, TEST-0004, TEST-0005
というフォルダができます。


【追記】
フォルダ作成にどれだけ時間がかかるか調べました。

方法:
「SET COUNT=0」と「:EXITLOOP」の後ろに
「ECHO %TIME%」と入れてみる。

結果:
フォルダ100個作成 : 約1秒
フォルダ1000個作成 : 約10秒
まぁまぁ。

【追記】
もともと同じ名前で、中身があるフォルダをバッチでもう一回作ろうとするとどうなるか。

結果:
上書きしないので、中身は消えないよ。
コマンドプロンプトに
「サブディレクトリまたはファイルxxxxxは既に存在します。」
と表示してくれている。
でも、EXITで終わっちゃうから、見れない。

対策:
フォルダが既にあるから、作らなかったってことを確認したかったら、
一番最後の行を「EXIT」から「PAUSE」に変更。
すると、フォルダを作り終わった後に
「…は既に存在します。」のメッセージも見れる。
ただし、処理が終了した後、
「続行するには何かキーを押してください...」
と出るから、押すのがめんどい。


合計: -
最終更新:2009年10月06日 09:17