プロが教えるわが家の防犯対策術!

対象のフォルダを定期的に外付けHDDにバックアップをとりたいと思っています。

cドライブにある「ABC」フォルダを、eドライブに今日なら「ABC_20080310」と日付を付与してコピーしたいのです。
(単なるコピーにしてしまうと上書きされて最新のバックアップしか取れない為)

これをbatファイル作成し、タスクにてスケジュール登録をして
定期的に実行したいと考えています。

コピー元
C:\abc
コピー先
e:\backup

コピー後
e:\backup\abc_20080310

batファイルにはどのように記述すればよいのでしょうか?
(単なるコピーであれば記述は分かるのですが ファイル名に日付を
代入する方法が分かりません)

良い方法がございましたらお教え下さい。
(解説サイトURLを頂けると後学のため非常に助かります。)

よろしくお願い致します。

A 回答 (3件)

現在の日付を自動で入れるのでしたら、こんな感じになると思います。



xcopy c:\abc e:\backup\abc_%date:~0,4%%date:~5,2%%date:~8,2%\ /E /S /I

環境変数を利用した方がきれいですが、バックアップの対象フォルダが1つならこれで十分かと思います。
それから、時刻も入れられますが少し面倒になります。
    • good
    • 2
この回答へのお礼

お教えいただいた記述を入力してみたところ、希望していたとおりになりました。本当にありがとうございます。

この記述を元に、どうしてこうなるのか? などより深く勉強して
行きたいと思います。

ありがとうございました。

お礼日時:2008/03/11 16:00

大変申し訳ありません。


こちらは、vistaで他は確認していませんでした。

Xpでは、xcopyが使えますので

   Robocopy

   xcopy
に置き換えて試してみてください。
    • good
    • 0
この回答へのお礼

更なるアドバイスありがとうございます。

こちらでもいろいろ調べてみたところ
XP 2003server 用にマイクロソフトが配布していたリソースキットを組み込むことでrobocopyが使用できるようになりました。

robocopyの存在すら知らなかったところですから、大変感謝しております。ありがとうございました。

お礼日時:2008/03/11 15:58

最近は、xcopyよりもRobocopyが使えるようです。



・ ヘルプは、
    >Robocopy /?

・ 簡単なコピーは

    >Robocopy /S C:\abc e:\backup\abc_20080310
  で行くと思います。

・ rcb.BATファイルは、以下のコードを参考にしてみてください。

+--------------------------------------------------------------------
:
:rcb.BAT
:
@echo off


if "%1"=="" goto :usage


Robocopy /S C:\abc e:\backup\abc_%1
goto :end
:
:usage
echo rcb.BAT 日付
goto :end

:end

---------------------------------------------------------------------
・ 利用方法は、

   >rcb 20080310

   です。

この回答への補足

ご回答有難うございます。

コマンドプロンプトを起動して
Robocopy /?
と入力したのですが、

’robocopy’は内部コマンド、外部コマンド、
操作可能なプログラムまたはバッチファイルとして認識されていません。

上記のように表示されてしまいます。
WindowsXP Pro SP2付属のコマンドプロンプトを使用しています。
何か足りないのでしょうか?
よろしくお願いします。

補足日時:2008/03/11 12:32
    • good
    • 0

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