- ベストアンサー
バッチファイルの作成
今回はバッチファイルの作成についてよろしくお願いいたします。 自分の端末のAというフォルダに毎月ファイルが作成されます。これをネットーワーク上の違う端末の特定のフォルダーにコピーしたいのです。 Aというフォルダにyyyymmというファイルが毎月できます。 これを翌月になったら\\MR\test の中にコピーする、という事で、例えば 2006年5月には Aのフォルダにある200604というファイルをネットワーク上の\\MR\testにコピーという事です。 毎月決まった日に動作させたいのですがそれはタスクに入れればいいかな、と考えています。 すみませんが、よろしくお願いいたします。
- みんなの回答 (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\
その他の回答 (2)
- cyaturn
- ベストアンサー率0% (0/1)
現在日付を取得する必要があるので、バッチファイルでは、日付の編集が出来ません。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\"
お礼
cyaturn様 ご回答頂いていましたのに、お礼が遅くなってしまって申し訳ありませんでした。 今までVBScriptは未経験でしたが、これを機に少し勉強してみる事にしました。ありがとうございます!
- kokorone
- ベストアンサー率38% (417/1093)
Aフォルダから、ネットワーク上の\\MR\testフォルダへ、無条件で コピーしてはいけないのですか? 処理年月-1のファイルに限定なのですか? 処理年限定でしたら、 copy A\2006* \\MR\test\. でいいですよね。 これをバッチファイルに入れて、タスクマネージャーに登録するだけ なのですが・・・
お礼
kokorone様 早速ご回答頂いていたのに、お礼が遅くなってしまって大変申し訳ありませんでした。 無条件コピーだとちょっと不具合がでるので、教えていただいたのを加工してトライしてみました。 ありがとうございました!!
お礼
pita-gora様 ご回答に対してお礼が遅くなってしまって申し訳ありませんでした。 なぜか上記で上手く動かなかったのですが、どうにかこうにか動かせるまでに至りました(笑) ありがとうございました!