• ベストアンサー

ファイルのコピー

毎日、3つのファイル (この質問では1つとします) をコピーするのですが、簡単にしたいと思っています。 1. c:\log\log.2008-07-25 という名前のファイル (日付は昨日の日付) 2. c:\20080725\log というフォルダ (日付は昨日の日付) 1のファイルを2のフォルダ内にコピーしたいです。 ファイル名やフォルダ名の日付部分は、昨日の日付なので、毎日変化します。 調べたところ、メモ帳で以下のように書いて、copy.cmdなどという名前で保存すればいいというところまでは分かりましたが、日付の変化に対応できません。 copy c:\log\log.2008-07-25 c:\20080725\log これに加え、毎日、同じ時間にこのスクリプトを自動実行できればさらにいいと思っています。可能でしょうか。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

まず、タイマー登録はこういう手順で。 http://www.atmarkit.co.jp/fwin2k/win2ktips/335tasksche/tasksched.html わかりやすいのは2段階に分ける方法です。 step1.cmdの内容: set D1=%DATE:/=-% set D2=%DATE:/=% echo copy C:\log\log.%D1% C:\%D2%\log\ > step2.cmd で、23:00 とかにstep1.cmdを実行し、0:10 とかにstep2.cmdを実行します。前日のうちに、翌日用のコピーコマンドを作っておくわけです。

buzhidao
質問者

お礼

ありがとうございます。 URLが「指定されたページは存在しません」となり、開けませんでした。

その他の回答 (2)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.3

#1です。 #2の方のお書きのWSHを使うのが本道ですが、難しいかと思ったので、あえてバッチ処理だけで出来る簡単な方法を書いてみました。 参考リンクは1文字を消してしまったようです。 http://www.atmarkit.co.jp/fwin2k/win2ktips/335tasksched/tasksched.html

buzhidao
質問者

お礼

ありがとうございます。 両方のやり方を検討してみます。

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.2

Windows 2000、XP、2003あたりなら、WSH(VBScript)を使えば簡単だ。 ちょっと今スクリプトを練っている時間がないので、「VBS リファレンス」とかで検索して、 ・Now()関数 今日の日付をDate型で取得 ・DateAdd(interval, number, date)関数 Dateの加算減算をする(これで「今日」から「1日引く」)  ・Year(date)、Month(date)、Day(date)関数 Date型の年、月、日をIntegerで取得 (さっき今日から1日引いた奴の年月日を数字で取得) ・Right()関数 (年月日を4桁、2桁、2桁の文字列にする) ・Scripting.FileSystemObjectオブジェクト (Windowsのファイル操作全般) あたりをざっと見てみて欲しい。これらを組み合わせれば簡単にできるはずだ。 ちなみにメモ帳で書いてcopy.vbsなどという名前で保存する。

buzhidao
質問者

お礼

ありがとうございます。 簡単な人には簡単なのでしょうが、難しそうですね。 参考にしてみます。

関連するQ&A