人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

フォルダ「3101」内には「index.html」があります。
同様のフォルダを40個作ります。
フォルダの名前は
「3101」
「3102」
「3103」
...
「3137」
「3138」
「3139」
「3140」
です。

簡単に作る方法を教えてください。

●質問者: Koya
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● lang_and_engine
ベストアンサー

下記の内容を「3101」の上のフォルダ上にhoge.batなどのファイル名で保存し,ダブルクリックで実行して下さい。
全部いっきに生成されます。動作確認済み。


@echo off


rem forループ内の環境変数を遅延展開する
SETLOCAL enabledelayedexpansion

rem 2から40まで数値を増減しながらループ
for /L %%i in (2, 1, 40) do (

 set DIR_NUM=%%i
 
 rem カウンター数値を0埋め
 if %%i LSS 10 (
 rem 遅延展開された環境変数は%ではなく!で囲む
 set DIR_NUM=0!DIR_NUM!
 )
 
 rem フォルダの名前
 set DIR_NAME=31!DIR_NUM!
 echo !DIR_NAME!を生成します。
 
 rem ディレクトリをコピー
 xcopy .\3101 .\!DIR_NAME! /e /c /q /y /i > nul
 rem xcopyのオプション http://www.k-tanaka.net/cmd/xcopy.php
 rem パスの最後に\は付けない http://ziddy.japan.zdnet.com/qa6056560.html
)

ENDLOCAL

echo 完了しました。

pause



コーディングのために参考にしたサイト:

BATのforループで,「0埋めされた数値」を連番で出力しよう (環境変数の遅延展開と,数値の大小比較判定の方法) - 主に言語とシステム開発に関して
http://d.hatena.ne.jp/language_and_engineering/20131116/BATLoopNumberIncrementByDelayedExpansion


Koyaさんのコメント
ありがとうございます! ちなみに「rem」とはどういう意味でしょうか。

lang_and_engineさんのコメント
remとは、プログラムの中に説明文としてコメントを書く、という意味です。プログラムの中身をわかりやすく説明するための備忘録に過ぎませんので、その行を削除しても、プログラムの動作には支障はありません。私の場合、該当部分が正しく動作することの根拠が載っているページのURLなどをコメントに残すことが多いです。そのプログラムが正しく動くことの証明のようなものですね。 その他は、「bat rem」などでググってお調べ下さい。

Koyaさんのコメント
ありがとうございますm(_ _)m とても勉強になりました!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ