dポイントプレゼントキャンペーン実施中!

例えば僕はYamadaとします。自分のpcのmy documnetsにあるデータを
手動で.batを起動し、差分のみ LAN上の\\NAS1\svr3\営業部\Yamada
のフォルダにバックアップを取ろうとしています。
下のプログラムだと差分だけでなく、全部上書きをしてしまうのですが
何故だか分かりますか?
(保存先を変える前はちゃんと差分のみバックアップできてました。)
-------
rem backup01.bat
if not exist "C:\Documents and Settings\Yamada\My Documents" goto err
xcopy "C:\Documents and Settings\Yamada\My Documents" "\\NAS1\svr3\
営業部\Yamada" /d /e /y
echo 正常に終了しました。
goto end
:err
echo コピー元がありません、フォルダ名を確認してください。
:end
pause
------
宜しくお願いします。

A 回答 (1件)

まず、このような用途には、/d の替わりに /m をおすすめします。


これは、日付の比較による古い・新しいの判断ではなく、前回の xcopy 以降変更されたかどうかを直接判断します。
/m を使うと、最初のコピーは(全部のファイルが「更新済み」なので)全数コピーしますが、それ以降は、変更されたファイルだけコピーします。
ただ、コピー元が、ローカルであるときに限ります。

本題に変えると、可能性として考えられるのは、NAS 側の持っている時刻データが「過去」になっていて、NAS は、NAS で、その古い時間を「ファイルの更新時刻」と認識しているというのが考えられます。

これだと、いつでも、「コピー先の方が古い」となりますので。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます!
/m 何てあるんですね。便利そうです。

ただ、変更してみたのですが、やはり全数上書きを始めてしまいます。
仰るとおりNASの時刻データの認識に問題があると思われます。
アドバイスありがとうございました。

お礼日時:2009/04/08 08:52

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