• 締切済み

一定期間ごとにフォルダを自動削除したい。

○概要 バックアップソフトで特定フォルダを、毎時00:00に別ドライブにバックアップを取っておりますが、この時に自動生成されるバックアップフォルダ(フォルダとファイルが自動生成されます)を一定期間経過後自動削除したいのですが、ぴったり目的に合うフリーウェアが見つかりません。 ○要望 デスクトップPCのMyDocumentフォルダを、外付けHD購入して増設し、付属ソフトでバックアップを取っております。 バックアップソフトは付属のものなので、簡易機能であり 営業日単位でバックアップジョブを登録してます。 ジョブ(1):月曜日のバックアップ(火曜日の00:00にMydocumentを自動バックアップ) ジョブ(2):火曜日のバックアップ(水曜日の00:00にMydocumentを自動バックアップ) ジョブ(3):水曜日のバックアップ(木曜日の00:00にMydocumentを自動バックアップ) ジョブ(4):木曜日のバックアップ(金曜日の00:00にMydocumentを自動バックアップ) ジョブ(5):金曜日のバックアップ(土曜日の00:00にMydocumentを自動バックアップ) バックアップ先は増設した外付けHD(Eドライブ)配下の曜日フォルダです。 E:\Backup\Monday\ E:\Backup\Tuesday\ E:\Backup\Wednesday\ E:\Backup\Thrusday\ E:\Backup\Friday\ 各ジョブに対応したフォルダ名はシステムで一意に決められ変更はできません。 また、ジョブごとに1フォルダずつできるのもバックアップソフトの仕様です。 各ジョブに対応した曜日ごとのフォルダ配下に、00:00にMydoumentを自動バックアップすると 乱数フォルダ名のフォルダが自動生成され、その中にバックアップソフト独自の1かたまりになったファイルが1つと設定ファイルが1つできます。 この、各ジョブに対応した曜日フォルダ配下に自動生成されるバックアップフォルダを一定期間ごとに自動削除したいというのが要望です。 期間は1ヶ月(20営業日)で削除したいので、1ヶ月たったフォルダを自動削除でも E:\Backupフォルダを監視し、フォルダ数が20個以上いったら、古いものから自動削除という設定でも 各曜日フォルダ配下のフォルダが4個以上いったら古いものから自動削除でも構いません。 まずフォルダの自動削除ソフトウェアが数が少なく、ファイル対応のものばかりです。 あっても、監視フォルダ数が少なかったり、孫フォルダ非対応のものしか見つかりません。 よい方法があったらお教え願います。

みんなの回答

  • k1013m61
  • ベストアンサー率12% (2/16)
回答No.6

私はあまり知らないのですがそれはパソコンの問題とは感じません セキュリティ-の問題です 今のパソコンでは難しいと感じます なぜあなたがしないのでしょうか? ひとり秘書を雇えば解決します

  • iriyak
  • ベストアンサー率48% (40/82)
回答No.5

> 確かにyyyymmddhhmmss のように見えますよね。 はい。こちらはまだ(あてにしてよい)仕様かどうかは分かりませんから、孫フォルダの最終更新日付を比較の対象にして、削除するためのバッチプログラムを自動作成する Windows Script Host (VBScript, JScript) のプログラム例をご紹介します。 ■listup.wsf <package> <job> <script language='VBScript'> Function MonthsAgo(n) MonthsAgo = FormatDateTime(DateAdd("m", - n, Now)) End Function Function DaysAgo(n) DaysAgo = FormatDateTime(DateAdd("d", - n, Now)) End Function Function HoursAgo(n) HoursAgo = FormatDateTime(DateAdd("h", - n, Now)) End Function </script> <script language='JavaScript'> Enumerator.prototype.asArray = function () {   var anArray = [];   for (; !this.atEnd(); this.moveNext())     anArray.push(this.item());   return anArray; } Array.prototype.do_ = function (operation) {   for (var i = 0; i < this.length; i++)     operation(this[i]); } Array.prototype.select_ = function (discriminator) {   var anArray = [];   this.do_(function (each) { if (discriminator(each)) anArray.push(each) });   return anArray; } function listup_files(filepath, discriminator) {   discriminator = discriminator || function (each) { return true }   var FileSystemObject = new ActiveXObject('Scripting.FileSystemObject');   var rootFolder = FileSystemObject.getFolder(filepath);   var subFolders = new Enumerator(rootFolder.subFolders).asArray();   subFolders.do_(function (subFolder) {     WScript.echo('REM ' + subFolder);     var subsubFolders = new Enumerator(subFolder.subFolders).asArray();     subsubFolders.select_(discriminator).do_(function (subsubFolder) {       WScript.echo('RMDIR /Q /S ' + subsubFolder);     });     WScript.echo('');   });   WScript.echo('PAUSE'); } </script> <script language='JavaScript'> var targetpath = 'E:\\EasySaverBackup'; // ★1 var discriminator1 = function (folder) { return folder.DateLastModified < new Date(MonthsAgo(1)) } var discriminator2 = function (folder) { return folder.DateLastModified < new Date(DaysAgo(1)) } var discriminator3 = function (folder) { return folder.DateLastModified < new Date(HoursAgo(1)) } listup_files(targetpath, discriminator1); // ★2 </script> </job> </package> ■listup.wsf の編集 ★1: 親、子、孫フォルダの親フォルダを指定します ★2: discriminator1, 2, 3 は、実行する時刻から、それぞれ 1か月前、1日前、1時間前の孫フォルダを抽出するよう指示するためのプログラムで、listup_files() の第二引数に与えてやります。 ■実行方法 (3)は画面に出力し、(4)は rmdir.bat バッチファイルに出力をリダイレクトします。(5)で実際に削除を指示します。 (1) listup.wsf を E:\ に格納します (2) コマンドプロンプトを開き CD E:\ に移動します (3) cscript.exe //nologo listup.wsf (4) cscript.exe //nologo listup.wsf > rmdir.bat (5) rmdir.bat ■(3)の実行例 ・削除対象がない場合 E:\>type rmdir.bat REM E:\EasySaverBackup\2007071210480309193a97 RMDIR /Q /S E:\EasySaverBackup\2007071210480309193a97\20080422000540 RMDIR /Q /S E:\EasySaverBackup\2007071210480309193a97\20080429000748 RMDIR /Q /S E:\EasySaverBackup\2007071210480309193a97\20080506110544 RMDIR /Q /S E:\EasySaverBackup\2007071210480309193a97\20080513000344 REM E:\EasySaverBackup\20070712105211091d0173 RMDIR /Q /S E:\EasySaverBackup\20070712105211091d0173\20080416000319 RMDIR /Q /S E:\EasySaverBackup\20070712105211091d0173\20080423000228 RMDIR /Q /S E:\EasySaverBackup\20070712105211091d0173\20080430000800 RMDIR /Q /S E:\EasySaverBackup\20070712105211091d0173\20080507085010 REM E:\EasySaverBackup\20070712105354091e963c RMDIR /Q /S E:\EasySaverBackup\20070712105354091e963c\20080417001456 RMDIR /Q /S E:\EasySaverBackup\20070712105354091e963c\20080424000837 RMDIR /Q /S E:\EasySaverBackup\20070712105354091e963c\20080501002234 RMDIR /Q /S E:\EasySaverBackup\20070712105354091e963c\20080508000339 REM E:\EasySaverBackup\20070712105419091ef4f6 RMDIR /Q /S E:\EasySaverBackup\20070712105419091ef4f6\20080418000230 RMDIR /Q /S E:\EasySaverBackup\20070712105419091ef4f6\20080425000132 RMDIR /Q /S E:\EasySaverBackup\20070712105419091ef4f6\20080502000801 RMDIR /Q /S E:\EasySaverBackup\20070712105419091ef4f6\20080509000226 REM E:\EasySaverBackup\20070712105457091f8c83 RMDIR /Q /S E:\EasySaverBackup\20070712105457091f8c83\20080419000341 RMDIR /Q /S E:\EasySaverBackup\20070712105457091f8c83\20080426000234 RMDIR /Q /S E:\EasySaverBackup\20070712105457091f8c83\20080506111003 RMDIR /Q /S E:\EasySaverBackup\20070712105457091f8c83\20080510000353 PAUSE E:\> ・削除対象がある場合 E:\>type rmdir.bat REM E:\EasySaverBackup\2007071210480309193a97 REM E:\EasySaverBackup\20070712105211091d0173 REM E:\EasySaverBackup\20070712105354091e963c REM E:\EasySaverBackup\20070712105419091ef4f6 REM E:\EasySaverBackup\20070712105457091f8c83 PAUSE E:\> ■さらなる改善ポイント ・バッチプログラムの実行も指示する ・タスクとして登録して定期的に実行を指示する ・★2 で指示する discriminator をチューニングする ・その他のプログラミング言語の移植にトライする

  • iriyak
  • ベストアンサー率48% (40/82)
回答No.4

こんにちは。 出来あいのソフトウェアをお探しのようですが、そういう削除を行うプログラムを自作することは選択肢に入れてもよいのでしょうか。 孫フォルダの名前にバックアップを着手した時刻らしきものが記録されているように見えます。そこに注目するとプログラム可能では?? と回答者は感じました。

LesMills2
質問者

補足

>出来あいのソフトウェアをお探しのようですが、そういう削除を行うプログラムを自作することは選択肢に入れてもよいのでしょうか。 OKです。vbsかbatファイル程度であれば、着手は可能だと思います。 >孫フォルダの名前にバックアップを着手した時刻らしきものが記録されているように見えます。そこに注目するとプログラム可能では?? と回答者は感じました。 ヒントありがとうございます。 確かにyyyymmddhhmmss のように見えますよね。 ソフトの仕様にはそこまで触れられていなかったので こちらについては詳しく検証して調べていく必要がありそうです。

noname#70614
noname#70614
回答No.3

一定期間ごとに指定したフォルダの中身だけを自動削除

参考URL:
http://nagabuchi.jugem.jp/?eid=97
LesMills2
質問者

補足

具体的にディレクトリのツリー表示を載せるとこんな感じです。 f: ├─ EasySaverBackup <Folder>   ├─ 2007071210480309193a97 <Folder>   │ ├─ 20080422000540 <Folder>   │ ├─ 20080429000748 <Folder>   │ ├─ 20080506110544 <Folder>   │ └─ 20080513000344 <Folder>   ├─ 20070712105211091d0173 <Folder>   │ ├─ 20080416000319 <Folder>   │ ├─ 20080423000228 <Folder>   │ ├─ 20080430000800 <Folder>   │ └─ 20080507085010 <Folder>   ├─ 20070712105354091e963c <Folder>   │ ├─ 20080417001456 <Folder>   │ ├─ 20080424000837 <Folder>   │ ├─ 20080501002234 <Folder>   │ └─ 20080508000339 <Folder>   ├─ 20070712105419091ef4f6 <Folder>   │ ├─ 20080418000230 <Folder>   │ ├─ 20080425000132 <Folder>   │ ├─ 20080502000801 <Folder>   │ └─ 20080509000226 <Folder>   └─ 20070712105457091f8c83 <Folder>   ├─ 20080419000341 <Folder>   ├─ 20080426000234 <Folder>   ├─ 20080506111003 <Folder>   └─ 20080510000353 <Folder> EasySaverBackup配下に出来ている5つのフォルダがそれぞれ 月~金のジョブ用のフォルダです。 その配下に毎時00:00にバックアップフォルダと、その中にバックアップファイルが作成されるので、ディスク容量を圧迫しないように、1ヶ月前のフォルダを消していきたいのです。 1ヶ月前というのはおおよそなんで、本日5/13であれば、4/13までのフォルダを消していく具合です。 今は手動でやっています。 ちなみに一つのジョブフォルダ配下のバックアップフォルダの中には以下のようなファイルが生成されます。 └─ 20080510000353 <Folder> ├─ 00000001.bkd.....2097109KB.....2008/05/10 0:10:12 ├─ 00000002.bkd.....2097113KB.....2008/05/10 0:12:20 ├─ 00000003.bkd.....2097102KB.....2008/05/10 0:14:58 ├─ 00000004.bkd.....2097108KB.....2008/05/10 0:18:44 ├─ 00000005.bkd.....1520101KB.....2008/05/10 0:20:46 ├─ database.edb.....8680KB.....2008/05/10 0:20:48 └─ database.txt........1KB.....2008/05/10 0:20:46

noname#70614
noname#70614
回答No.2

タスクスケジューラというのは知っていますか? タスクスケジューラを使えば可能です。

  • foitec
  • ベストアンサー率43% (1079/2453)
回答No.1

>乱数フォルダ名のフォルダが自動生成され 自動的に消去するユーティリティがあったとして、バックアップソフトウエアが生成した乱数に基づくフォルダ名は判別できるでしょうか? ワイルドカードなどの条件を指定すれば可能かもしれません。 とこおで、OSのNTバックアップを利用(ボリュームシャドーコピーが利用される)で スケジュール管理し週単位で「月・火・水・木・金)を指定し 上書き指定すれば常に最新のものだけがバックアップされます。 つまり同じ曜日の古いバックアップは上書きにより消されます。 欠点 ボリュームシャドーコピーを利用するので元のボリュームが壊れると復元できない。

LesMills2
質問者

お礼

>自動的に消去するユーティリティがあったとして、バックアップソフトウエアが生成した乱数に基づくフォルダ名は判別できるでしょうか? この質問を上げる前まで検討していたソフトがあります。 http://www.vector.co.jp/soft/win95/util/se220077.html これだと、指定フォルダ内に指定したフォルダ数以上のフォルダができると、古いものから削除できます。 今回の場合、孫フォルダまで監視する必要がある・もしくは、5フォルダを監視する必要があるので、検討から外れましたが。。 >ボリュームシャドーコピー バックアップしてるPCはメインドライブをハードウェアRAIDをかけております。 ソフトウェアでかけてるバックアップは、オペレーションミスによる誤消去ファイルを復活させるため、1ヶ月前の分までバックアップを保存しておく事なので、確かに差分バックアップでも構わないのですが、バックアップ用に300GBの外付けHDを準備してあるので、フルバックアップを選択しました。

関連するQ&A

  • 7日間又は7世代前のバックアップフォルダの自動削除

    仕事で使っているソフトのバックアップを毎日取っています。 バックアップ日毎にフォルダ名は自動でYYYYMMDD形式になっています。 そのバックアップフォルダを直近の7日間又は7世代分を残して自動削除したいのですが、 バッチファイルの書き方が分かりません。 どなたかご教示お願い致します。

  • WINDOWSフォルダが削除できない。

    いつもお世話になります。 先日、リカバリ作業しました。 以前のデータやプログラムは「My Backup」というフォルダにバックアップされていました。 必要なデータをはコピーして、「My Backup」を削除しようとしたらエラーが出て削除できませんでした。 「My Backupフォルダ」内で個別に削除したところ 「WINDOWSフォルダ」だけが削除できませんでした。 エラーメッセージです。  ●ファイルまたはフォルダの削除エラー  ●flash.ocxを削除できません。アクセスできません。 「WINDOWSフォルダ」削除するには、どうしたら良いのでしょうか? 宜しくお願い致します。

  • OSXでいい自動バックアップソフトは?

    指定したフォルダ配下のファイルを、 裏で自動的にバックアップしてくれる ソフトを探しているのですが、 いいものはないでしょうか?

    • ベストアンサー
    • Mac
  • 削除できないフォルダについて

    どうしても削除できないフォルダがあります。一般的な対処方法は実施済みですがダメでした。助けて下さい。 状況 ・windows XP ・問題のフォルダは、外付けHDDにあり、外付けHDDは、ネットワークドライブを割り当てている ・backupというフォルダの中にさらにbackupが存在し、これが30回層続きます。 ・最後のbackupフォルダは、右クリックしても削除というメニューはでません。 ・途中階層のbackupフォルダは、右クリックから削除をしても「ファイルを削除できません」とでます ・コマンドプロンプトからrdフォルダ名などは試しましたが「最大長を超えています」とメッセージがでます ・同名フォルダを作って削除も上書きできませんでした。 ・まめfileも試しましたが、ダメでした。 一番下の階層(30番目)にあるフォルダ「backup」が何をしても消せないといた状況です。 ご教示いただけませんか。

  • フォルダーを削除したい

    デスクトップに作成されたフォルダーを削除したいのですが、そのフォルダーをゴミ箱にドラッグしたり、右クリックの削除をしたりしても、 【ファイルまたはフォルダの削除エラー】 「『○○(フォルダー名)』を削除できません。ほかの人またはプログラムによって使用されています。ファイルを使用している可能性があるプログラムをすべて閉じてから、やりなおしてください。」 というエラーメッセージがでます。 ・他のプログラムは使用していません。 ・このフォルダーは、私が撮影したデジカメ写真が一枚だけ入っています。 ・この写真の整理中に、誤って右クリックメニューに追加していた圧縮プログラムに送ってしまって、デスクトップに圧縮ファイルが生成されました。 ・その圧縮(LZH)ファイルをダブルクリックしたところ、自己解凍により自動生成されたものです。 どうしたら削除できるでしょうか よろしくお願いします。

  • フォルダ 削除しようとするとエラー

    こんにちは、 環境 Windows2000ServerSP4 C:システム D:DATA E:Backup Eドライブでバックアップを行っていますが、作成されたフォルダの一部で 「「ファイル名」を削除できません。ファイルまたはディレクトリが壊れているため、読み取ることができません。」というエラーが出ます。 何が起こっているのかよくわからず困っています。 何かお分かりの方がいましたら教えてください。 よろしくお願いします。

  • 特定のフォルダを更新毎に自動的にバックアップしたい

    特定のフォルダを更新毎に自動的にバックアップしたい Windows7 Home Premium を事務所で使っているのですが、任意の特定のフォルダを、別の任意の特定のフォルダに自動的に(=更新がある度に)バックアップしたいのです。 希望としては、以下のような環境です(数値などは例です)。 ---------- バックアップ元:C:\Users\Admin\Documents バックアップ先:D:\Backup バックアップ元のフォルダ内が更新されれば、その都度バックアップ元ファイルに自動的にコピーが作成されるようにしたい。  ※できることなら、さらに、  BU元で更新(変更)したファイルも、BU先に上書きコピーではなく別ファイルとして、  また、BU元で削除したファイルは、BU先からは削除しない。 ---------- といった設定ができれば良いです(変更・削除前のファイルも、何らかの形で残っていればよいです)。 できれば、ソフトを使わずに、Windows自体の機能や設定でできないものかと思っていますが、 ソフトを使う方法でも構いません。 LANを構築しているので(PCは10台程度)、BU元とBU先のPCが異なっても構いません(ただ、その場合のBU先PCのOSは、WindowsVistaです)。 現在は、Dropboxを利用して、特定のフォルダをバックアップしています。 Dropboxだと、BU元でファイルを更新(変更)・削除しても、更新・削除前のファイルもバックアップされていて後からそれを復元することができ、上記のことがほぼ実現できているのですが、 無料環境だと10件以上前の更新ファイルを表示させるのに時間がかかったり(というより、ローディング状態が続くだけで、ほとんどの場合見れない)、一般のネットワーク経由なので時間がかかりすぎてしまう面で、困っています。 以上のことを実現できる、何かよい方法はありませんでしょうか。 よろしくお願いします。

  • Recentフォルダ

    Win2000で C:\Documents and Settings\Administrator\Recent に1度開いた?ショートカットのファイルが自動で生成されるのですが、 既に削除したファイルなども残ったままなのですが、生成をしないように設定したり、定期的に削除するような設定はできないでしょうか? また、このrecentフォルダのショートカットのファイルはなんのために生成しているのでしょうか?(アクセスを速くするためとかでしょうか?) このフォルダ以外にも、1度開いた?ショートカットのファイルが自動で生成されてしまうフォルダなどはあるでしょうか? 既に削除したファイル・フォルダのファイル名・フォルダ名が垂れ流しで残るのが嫌というのが1つの理由なのですが、ファイル生成したい方法があれば知りたいです。

  • 一定日数経過後の起動でフォルダを自動削除したい

    一定期間(たとえば10日間)PCを起動していなかった状態からPCを起動したとき、指定したフォルダを自動削除したいと思っています。 フォルダ削除のフリーソフトは「FMTool」など見つけられたのですが、一定期間PCを起動していなかった状態からPCを起動したときに実行させる方法がわかりません。そう言ったソフトはありますか? フリーソフトの「僕が死んだら...」で自動実行できれば、もしくは 「誉 - 名を惜しめ、恥を知るものは強し」でフォルダが指定できたらベストなのですが…

  • フォルダ自動削除

    マイドキュメントの中に消しても消しても出てくるフォルダを、レジストリをいじったりアドベやリアルプレーシャーやメディアプレーヤーを設定したりなくそうと努力しましたが、どうしても出てくるフォルダがいくつかあります。Adobe、マイビデオ、AccessConnection(これはソフト側を設定してもなぜか出てくる)です。 ここで質問してもネットを捜してもどうしても解決策が見つかりません。ですから作成されるのは仕方ないとして、それをいっそのこと自動削除しようと思います。 ある特定場所(マイドキュメント)に出てくる特定のフォルダ(前述)を分単位で自動削除するようなソフトはございませんでしょうか?