新しく質問する

バッチでサブフォルダ内のファイルも含めたコピー処理をするには

役に立った:5件
  • 質問者:ak9457
  • 投稿日時:2005/06/02 23:21
  • 困り度:暇なときに回答をください
  • 友達に紹介
  • ブログに書く
  • 教えて!gooお気に入り

DOSコマンドのコピーコマンドについての質問です。
指定されたフォルダ内のファイル全て(サブフォルダ内に格納されているファイルも全て)をc:\bkup\にコピーするバッチを組みたいのですがどのようにすればよいのでしょうか。

xcopy /y /e %1 c:\bkup\
とした場合、サブフォルダもコピー対象に入りますがサブフォルダ内のファイルの格納先がc:\bkup\サブフォルダ名\になってしまい、私の実現したい処理とは異なります。
サブフォルダ内のファイルもc:\bkup\にコピーするにはどうすればよいのでしょうか。
宜しくお願い致します。

この質問への回答は締め切られました。
このQ&Aは役に立ちましたか?(役に立った:5件)
  • 参考になった:0件

No.2ベストアンサー20pt

  • 回答者:you-m
  • 回答日時:2005/06/03 06:08

では、このように変更を。

for /f %%a >>> for /f "tokens=*" %%a

通報する

この回答へのお礼

おかげさまで目的のバッチを組むことができました。
本当にありがとうございました。

  • 参考になった:0件
  • 回答者:you-m
  • 回答日時:2005/06/03 00:06

いまいち質問の意味がわかりにくいですが、こういうことでしょうか。
c:\data\sub1\aaa.dat
c:\data\sub2\bbb.dat
というのがバックアップ対象だったとして、
c:\bkup\aaa.dat
c:\bkup\bbb.dat
という風にコピーしたいということであれば、xcopyコマンドひとつでは、不可能です。

OSがNT/2000/XPであれば、次のようなバッチファイルで解決できます。

@echo off
for /f %%a ('dir /b/s c:\data') do (
copy %%a c:\bkup
)

以上 ご参考までに。

通報する

この回答へのお礼

回答ありがとうございます。
ご教授いただいた方法でうまくいきました。
しかしスペースを含んだファイルがある場合にうまくいかないようです。
以下のように""で囲んでみたのですが%aにはスペースの前までのファイル名がすでに格納されているようでうまくいきませんでした。

for /f %%a in ('dir /b/s c:\data') do (
copy "%%a" c:\bkup
)

対処方法等ありますでしょうか。
宜しくお願いいたします。

尚、質問の意味はyou-mさんの認識通りです。
説明下手で申し訳ございません。

  
このQ&Aは役に立ちましたか?(役に立った:5件)

このページのトップへ

Facebook公式ページ

公式Twitter