- ベストアンサー
1つのファイルを 100 のフォルダに一括コピーするには?
1つのディレクトリ内に 100 のフォルダがあり それぞれに index.html をコピーしようと思ってるのですが、 効率の良い方法ありますでしょうか? category1 category2 category3 ... コマンドプロンプトで copy index.html C:\001\category*\ としてみましたが ここでワイルドカードは使えないようです。 vbs などでも、なにか良い方法ありますでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
#3です。 >実際はフォルダごとに少し名前が違うので、 >ワイルドカードの代わりになるようなものは >ありますでしょうか? FORのヘルプを見るとわかりますが /D オプションでディレクトリ名をワイルドカードで指定出来ます。 例えばcategoryから始まる名前のディレクトリなら FOR /D %d IN (category*) DO copy index.html %d の様な感じになります。
その他の回答 (3)
- Bonjin
- ベストアンサー率43% (418/971)
DOSのFOR文を使えば簡単です。 FOR /?でヘルプを見てみましょう。 とりあえず、index.htmlをcategory1~category100までコピーする文はこうなります。 FOR /L %i IN (1,1,100) DO copy index.html category%i ※BATに書く場合は%iを%%iにする必要があります
お礼
DOS のループは使ったことがなかったので もっと調べてみようと思います。 ありがとうございます!! 実際はフォルダごとに少し名前が違うので、 ワイルドカードの代わりになるようなものは ありますでしょうか? 問題は解決したので参考までに。
ドライブC の直下にある 001 フォルダ内の index.html を, ドライブC の直下にある 001 フォルダ内の category1 ~ category3 フォルダにコピーする場合, ドライブC └ 001(フォルダ) ├ index.html - - - - - - → ↓コピー ├ category1(フォルダ) - <index.html> ├ category2(フォルダ) - <index.html> └ category3(フォルダ) - <index.html> VBS は次のようになります。 -------------------------------------------- Set fso = CreateObject("Scripting.FileSystemObject") For i=1 To 3 fso.CopyFile "C:\001\index.html", "c:\001\category" & i & "\" Next -------------------------------------------- category1 ~ category100 であれば, For i=1 To 100 にすれば良いだけです。 ファイル操作編(016~027) ■ WSH.016 ファイルのコピー http://www1.u-netsurf.ne.jp/~tomo_c/tips/WSH003.html#WSH016
お礼
ありがとうございます!! とても勉強になりました。 vbs はまだ経験不足なので いろいろ調べてみようと思います。 実際はフォルダごとに少し名前が違うので loop は使えないのですが、ディレクトリ内の ファイルを取得することは可能でしょうか? アルファベット数は 3 文字と決まってます。
- ham_kamo
- ベストアンサー率55% (659/1197)
Excelを起動し、A1に「copy index.html 」と記入。 B1に「C:\001\category1」と記入して、A1とB1セルを選択して下にコピー。categoryの数字が自動的に増えていくので100行までコピー。 A1:B100を選択し、Ctrl+Cでクリップボードにコピー。 メモ帳を起動し、Ctrl+Vで貼り付け。バッチファイルができるので、適当な名前(copy_index.batなど)をつけてindex.htmlのあるフォルダに保存。 バッチファイルを実行。 これでいかがでしょうか。
お礼
Excel でバッチファイルを書くというのは 初めてだったのですがとても面白いですね。 実際はフォルダごとに少し名前が違ったので getName.bat の中に dir/b > list.txt と入れて Excel にペーストでうまくいきました。 ありがとうございました!!
お礼
うまくいきました! 手軽に書けて面白いですね。 もっと練習してみます!!