- ベストアンサー
フォルダ名に日付を付与してコピーしたい
対象のフォルダを定期的に外付けHDDにバックアップをとりたいと思っています。 cドライブにある「ABC」フォルダを、eドライブに今日なら「ABC_20080310」と日付を付与してコピーしたいのです。 (単なるコピーにしてしまうと上書きされて最新のバックアップしか取れない為) これをbatファイル作成し、タスクにてスケジュール登録をして 定期的に実行したいと考えています。 コピー元 C:\abc コピー先 e:\backup コピー後 e:\backup\abc_20080310 batファイルにはどのように記述すればよいのでしょうか? (単なるコピーであれば記述は分かるのですが ファイル名に日付を 代入する方法が分かりません) 良い方法がございましたらお教え下さい。 (解説サイトURLを頂けると後学のため非常に助かります。) よろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
現在の日付を自動で入れるのでしたら、こんな感じになると思います。 xcopy c:\abc e:\backup\abc_%date:~0,4%%date:~5,2%%date:~8,2%\ /E /S /I 環境変数を利用した方がきれいですが、バックアップの対象フォルダが1つならこれで十分かと思います。 それから、時刻も入れられますが少し面倒になります。
その他の回答 (2)
- auty
- ベストアンサー率58% (284/486)
大変申し訳ありません。 こちらは、vistaで他は確認していませんでした。 Xpでは、xcopyが使えますので Robocopy を xcopy に置き換えて試してみてください。
お礼
更なるアドバイスありがとうございます。 こちらでもいろいろ調べてみたところ XP 2003server 用にマイクロソフトが配布していたリソースキットを組み込むことでrobocopyが使用できるようになりました。 robocopyの存在すら知らなかったところですから、大変感謝しております。ありがとうございました。
- auty
- ベストアンサー率58% (284/486)
最近は、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付属のコマンドプロンプトを使用しています。 何か足りないのでしょうか? よろしくお願いします。
お礼
お教えいただいた記述を入力してみたところ、希望していたとおりになりました。本当にありがとうございます。 この記述を元に、どうしてこうなるのか? などより深く勉強して 行きたいと思います。 ありがとうございました。