• ベストアンサー

自動バックアップコピーをWSHかBATで・・・

こんにちは。データが消えて泣きそうなんです(;;)というか泣いてます... データファイルのバックアップ(不慮のフリーズにより現データが消失しても構わないように)をしたいのですが、ファイルの日付を見て同一ならバックアップしない(ファイルの日付による分岐)様にしたいのです。 WSHをスタートアップに入れるか、AUTOEXEC.BATにバッチで組むかでその処理をしたいと思っていますが、私には考えつきませんでした。 どうか分かる方、教えて下さいっ。

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

  • ベストアンサー
  • arika
  • ベストアンサー率9% (18/186)
回答No.4

BATではご希望のことは難しそうです。 ただ単に、日付のあたらしいものをコピーするかどうかは可能ですが。 参考URLでよいものをお探しになることも よいのではないかと思います。 WSHにこだわれるのでしたらマイクロソフトのサイトに DOCがあるのでそれを参考にされると比較的簡単かと 思います。 もうひとつHSPというのもありますんで、がんばる気があればチャレンジしてください。ちなみにURLにあげたベクタに HSPに関してものってますので、検索してみてください。

参考URL:
http://www.vector.co.jp/vpack/filearea/win/util/backup/index.html
kenichi
質問者

お礼

再び回答ありがとうございます。 やはりBATでは難しいですよね...WSHも見てみましたがなかなか理解しづらかったです。 ベクターでHSPを見てみました。これはヘルプがしっかりしている上に構造も簡単で、目的の動作が出来ました!しかもexeファイルが作れるんですね。今は自作スクリプトをスタートアップに入れています^^ ありがとうございました。

その他の回答 (3)

  • itohh
  • ベストアンサー率45% (210/459)
回答No.3

こんんちは。itohhといいます。 >世代管理が出来るのは良いのですが、そのまま放っておくと膨大になりませんか? パラメータによっては、膨大になります。(^^; 例えば、バックアップを毎日行っているのでしたら、 「パターンオプション」「圧縮」「ファイル名に日付記号を使用する」にチェックを入れます。 そして、日付記号を「曜日3桁」にします。 これならば、最大7世代のバックアップになります。 日付記号を「日2桁」にしたら、最大31世代のバックアップになります。 何も指定しなかったら、どうなるんだっけ... (すみません、今、確認できる環境にないので。)

  • arika
  • ベストアンサー率9% (18/186)
回答No.2

WSHをやろうかとおもっていらっしゃるのでしたら、ある程度ソフトが組めるってことですかね? BATでやるなら、XCOPYが使えるかと思うんですが、 使われているOSはなんでしょう? DOSプロンプトでXCOPY /?でのメッセージでよんでわかりますか? 補足ください。 ちなみにいろんなディレクトリに分割されているファイルですか?

kenichi
質問者

補足

回答ありがとうございます。 今は一応、Autoexec.batへこういう形でバックアップしています。 cd c:\backup del 日課.003 ren 日課.001 日課.002 ren 日課.bxb 日課.001 copy c:\progra~1\plato\master~1\日課.bxb c:\backup cd \ ですが、これでは起動ごとにバックアップされるのですが、日課.bxbが更新されなくても無条件に002→003になるんですよね。 そこを、更新されたときのみ002→003にしたいのですが、ファイルの更新日時をどうやって判断したらよいのかわかりません。BATで関数(実行ファイル)がないのなら、WSHをスタートアップに入れて出来ないかなと思った次第です。

  • itohh
  • ベストアンサー率45% (210/459)
回答No.1

こんにちは。itohhといいます。 わたしも、焦ったことがあります。 初心者には、難しいですよね。 もし、フリーソフトでもよろしければ、「窓の杜」や「ベクター」などでたくさん探せますよ。 わたしの場合は、フリーソフトを使ってバックアップを行っています。 「みやばっく」というフリーソフトです。 スケジューラーに登録して何曜日にバックアップするとか、何時に行うとか指定できるものです。

kenichi
質問者

お礼

回答ありがとうございます。 「みやばっく」試してみました。が、世代管理が出来るのは良いのですが、そのまま放っておくと膨大になりませんか?

関連するQ&A

  • バッチファイル(.bat)へWSH(.wsf)のエラーコードの返し方について

    はじめまして、kiwi88と申します。 バッチファイル(.bat)からwshスクリプト(.wsf)を呼び出すプログラムを作成しました。 そこで、wshスクリプトで実行されたエラーコードを呼び出しもとのバッチファイル(.bat)に返すことはできますでしょうか。 以下はバッチファイル(.bat)からwshスクリプト(.wsf)を呼び出す箇所のソースです。 ◆バッチファイル(test.bat)◆ ---------------------------------------- ~※処理内容省略~ cscript test.wsf //nologo //Job:wshscript > batch.log IF %ERRORLEVEL% NEQ 0 GOTO ERR exit :ERR set ret=%ERRORLEVEL% echo ****** [%:ERRORLEVEL=%ret%] ****** > err.txt exit %ret% ---------------------------------------- 以下はwshスクリプト(.wsf)のエラーコードを返す箇所のソースです。 ◆wshスクリプト(test.wsf)◆ ---------------------------------------- <job id = "wshscript"> <script language = "VBScript"> <![CDATA[ Option Explicit Function Main() ~※処理内容省略~ err = Err.Number Main = err End Function ]]> </script> </job> ---------------------------------------- 長くなってしまい、申し訳ありませんが、 ご教授願えますでしょうか。 宜しくお願いいたします。

  • WSHでファイル比較処理について

    今、バックアップソフトにバッチ処理(WSH)を走らせたいのですが、 要件として、とあるサーバのバックアップファイルをローカルの ディレクトリに保存して、最新のバックアップファイル以外を削除させるバッチを作りたいです。 (例) ディレクトリ名:test バックアップファイル:最新と1個前 バックアップソフト:ARCServe 上記の場合、1個前のファイルを日付を見て比較して削除をさせるようなイメージです。 名前は同名をつけられないので、そこらへんもうまくできたらって 思っております。 参考になるURLが見つからなく、基本的な使い方しかなかったので、 詳しい方いましたら、情報をください。

  • WSHで他のバッチを呼びその終了を待つ方法

    WSHでプログラミングをしています。 WSHを使う理由はWin上から簡単にメールを送信できるのでとりあえず選択しました。 で、WSHのバッチから、普通のDOSコマンドで記述したバッチを呼んで、そのバッチの結果出力されたログファイルをWSHのバッチでメールに添付して送信したいなどと思っています。 今は var ws = WScript.CreateObject("Wscript.Shell"); ws.run("tmp.bat"); こんな感じで「tmp.bat」という名のDOSコマンドのバッチを呼び出しているのですが、このコマンドは命令発行したらその命令が終了するのを待たず次の命令に進んでしまうようです。 なので、ログ作成とメール送信のタイミングが合わない状態です。 処理待ちする方法を教えてください。よろしくお願いします。

  • ファイル名を指定して、batファイルを実行したい。

    C♯、PostgresSQL環境です。 フォームのボタンを押した時、batファイルを実行したいと 考えています。 処理の内容は、DBのバックアップ・リストアです。 現在は、Process.Startを使ってバックアップ用のbatファイルを 実行していますが(処理としてはpg_dumpallをしています)、 リストア時はファイル名を指定してリストアさせたいのです。 (ファイル名を指定してリストア用batファイルを動かしたい) Process.Startの第二引数でファイル名を渡せば良いかと思ったの ですが、バッチファイルでそれを受け取って処理に入れるには どうすれば良いのでしょうか? (バッチファイルはコンソールアプリとして作ったわけではなく、 メモ帳で作成したものです) ヒントをいただけると助かります。 宜しくお願いします。

  • batやwshを使って管理者権限に変更したい

    GUIでの操作をbatやwshで操作させたいのですが可能でしょうか? ■操作内容 コントロールパネル → 別のアカウントの管理 → 対象ユーザを 標準ユーザ→管理者権限に昇格 と いう動作です。 batファイル等を管理者権限として一時的な実行する手段ではなく、 対象ユーザを管理者に変更するというコマンドになります。 お分かりの方ご教授いただけると幸いです。

  • バッチファイル(.BAT)のパラメータ

    バッチファイル(.BAT)をWindows2000Serverで実行する際、パラメータ付きで実行します。 2000Serverの1日前の日付をパラメータにしたいのですが可能でしょうか?(昨日のデータを抽出する) 以上、お願いいたします。

  • バッチファイルで他のバッチファイルを呼び出した後、元に戻ってこれない。

    バッチファイルで他のバッチファイルを呼び出した後、元に戻ってこれない。 バッチファイルでほかのバッチファイルを呼び出した後の処理で困っています。 どうぞ教えてください。 「A.bat」というバッチファイルを実行すると、「1.bat」というバッチファイルを 実行させ、「1.bat」の実行結果によって、処理を分岐させたいと考えています。 「1.bat」をcallで呼び出し、実行はできたのですが、「1.bat」は最後にエンタキーを 押さないと終了しないようになっています。そのため、「エンターキーを押して終了させて ください」というメッセージが出たままの画面で終わってしまい、「A.bat」に帰ってくることが できません。 「1.bat」は中身を扱えないようにしてあるバッチファイルなので、こちらでエンターキーを 押さずに終了させるようにはできません。何かいい方法はないでしょうか?

  • WindowsXPとAUTOEXEC.BATやCO

    WindowsXPとAUTOEXEC.BATやCONFIG,SYS  何時も回答いただきありがとうございます。  WindowsXPでは、  MS-DOSモードやMS-DOSプロンプト 16ビットプログラム  など、無いのに、なぜ、 ルートディレクトリーに  AUTOEXEC.BATやCONFIG,SYS が、あるのでしょうか?   AUTOEXEC.BATやCONFIG,SYS は、16ビットプログラム専用に使用するものでは、無いのでしょうか?   AUTOEXEC.BATやCONFIG,SYS のファイルの中身は、何も書かれていません。  たとえ、ひとつだけでも、お知りのことがありましたら、教授方よろしくお願いします。  敬具

  • データの自動的バックアップで

    現在Accessのデータを毎日パソコンの電源投入時に自動的に バックアップを取るためのBATファイルを動かしています。 あるパソコンのスタートアップにMSDOSのBATファイルを入れて MOVEやCOPYなどを使ってサーバーのデータをクライアントの パソコンにコピーし、60のフォルダに過去60回分のコピー結果 を保存しています。 (1日1回起動するとして過去60日分までバックアップ) BATファイルの内容例   REM ECHO OFF   DEL D:\MBACKUP\BKUP60\*.MDB   MOVE D:\MBACKUP\BKUP59\*.MDB D:\MBACKUP\BKUP60         ・・・   MOVE D:\MBACKUP\BKUP02\*.MDB D:\MBACKUP\BKUP03   MOVE D:\MBACKUP\BKUP01\*.MDB D:\MBACKUP\BKUP02   COPY K:\山.MDB D:\MBACKUP\BKUP01 これはクライアントがWindowsXPのパソコンではとてもうまくできたの ですが、Windows8のパソコンしたらうまく行きません。 たとえばサーバーのフォルダをKドライブに自動的に割り当てて BATファイルを動かしているのですが、サーバーに接続する前に BATファイルが動いてしまい、コピーができないことがあります。 結果、バックアップができたりできなかったりする日が発生して しまいます。 ちなみに、エクスプローラでKドライブに接続してからBATファイル を動かせばきっちり動作します。 Windows8のパソコンで起動時にサーバーに接続してからBAT ファイルを動かすにはどうすればいいでしょうか。 WindowsXPのころや、Windows7とXPモードだとパソコンの電源を 入れればほとんどサーバーに再接続できたのでBATファイルが 希望通り動作していたのですが・・・

  • WSH

    こんにちわ WSHで以下のような処理は可能でしょうか。 複数のコンピュータのローカルデータを ファイルサーバに保存する。 Windows NT 4.0 workstationになります。 処理イメージ (1)それぞれのコンピュータ名を取得する。 (2)取得したコンピュータ名と同じディレクトリを ファイルサーバに作成する。 (3)自分と同じディレクトリに、ローカルデータを保存する。 よろしくお願いします。

専門家に質問してみよう