• ベストアンサー

バッチファイルの作成

今回はバッチファイルの作成についてよろしくお願いいたします。 自分の端末のAというフォルダに毎月ファイルが作成されます。これをネットーワーク上の違う端末の特定のフォルダーにコピーしたいのです。 Aというフォルダにyyyymmというファイルが毎月できます。 これを翌月になったら\\MR\test の中にコピーする、という事で、例えば 2006年5月には Aのフォルダにある200604というファイルをネットワーク上の\\MR\testにコピーという事です。 毎月決まった日に動作させたいのですがそれはタスクに入れればいいかな、と考えています。 すみませんが、よろしくお願いいたします。

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

  • ベストアンサー
  • pita-gora
  • ベストアンサー率70% (102/145)
回答No.3

こんな感じのバッチでいかがでしょうか。 仮にAというフォルダのパスを C:\A とします。OSは2000/XPとします。 pushd C:\A set yyyymm=%date:~-10,7% set yyyymm=%yyyymm:/=% set /a yyyymm=yyyymm-1 if "%yyyymm:~-2%"=="00" set /a yyyymm=yyyymm-100+12 copy %yyyymm% \\MR\test\

harapon
質問者

お礼

pita-gora様 ご回答に対してお礼が遅くなってしまって申し訳ありませんでした。 なぜか上記で上手く動かなかったのですが、どうにかこうにか動かせるまでに至りました(笑) ありがとうございました!

その他の回答 (2)

  • cyaturn
  • ベストアンサー率0% (0/1)
回答No.2

現在日付を取得する必要があるので、バッチファイルでは、日付の編集が出来ません。VBScriptでよければ下記のような感じでできると思います。 '日付情報取得 aaa = month(now) if len(aaa) = 2 then bbb = aaa else bbb = "0" & aaa end if tgtfile = year(now) & bbb 'FSOでファイルコピー Set fso = CreateObject("Scripting.FileSystemObject") fso.CopyFile tgtfile , "\\MR\test\"

harapon
質問者

お礼

cyaturn様 ご回答頂いていましたのに、お礼が遅くなってしまって申し訳ありませんでした。 今までVBScriptは未経験でしたが、これを機に少し勉強してみる事にしました。ありがとうございます!

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.1

Aフォルダから、ネットワーク上の\\MR\testフォルダへ、無条件で コピーしてはいけないのですか? 処理年月-1のファイルに限定なのですか? 処理年限定でしたら、 copy A\2006* \\MR\test\. でいいですよね。 これをバッチファイルに入れて、タスクマネージャーに登録するだけ なのですが・・・

harapon
質問者

お礼

kokorone様 早速ご回答頂いていたのに、お礼が遅くなってしまって大変申し訳ありませんでした。 無条件コピーだとちょっと不具合がでるので、教えていただいたのを加工してトライしてみました。 ありがとうございました!!

関連するQ&A

専門家に質問してみよう