バッチでサブフォルダ内のファイルも含めたコピー処理をするには
DOSコマンドのコピーコマンドについての質問です。
指定されたフォルダ内のファイル全て(サブフォルダ内に格納されているファイルも全て)をc:\bkup\にコピーするバッチを組みたいのですがどのようにすればよいのでしょうか。
xcopy /y /e %1 c:\bkup\
とした場合、サブフォルダもコピー対象に入りますがサブフォルダ内のファイルの格納先がc:\bkup\サブフォルダ名\になってしまい、私の実現したい処理とは異なります。
サブフォルダ内のファイルもc:\bkup\にコピーするにはどうすればよいのでしょうか。
宜しくお願い致します。
回答(2件)
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示
No.2ベストアンサー20pt
では、このように変更を。
for /f %%a >>> for /f "tokens=*" %%a
この回答へのお礼
おかげさまで目的のバッチを組むことができました。
本当にありがとうございました。
いまいち質問の意味がわかりにくいですが、こういうことでしょうか。
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さんの認識通りです。
説明下手で申し訳ございません。
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示











