アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

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

A 回答 (2件)

いまいち質問の意味がわかりにくいですが、こういうことでしょうか。


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
)

以上 ご参考までに。
    • good
    • 0
この回答へのお礼

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

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

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

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

お礼日時:2005/06/03 02:26

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



for /f %%a >>> for /f "tokens=*" %%a
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/06/03 22:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!