新しいファイルを保持しながら、ごみ箱から古いファイルを自動的に削除しますか?


25

一定期間後に古いファイルをごみ箱から削除するエクスプローラアドオンが必要です。

たとえば、制限時間を30日に設定します。Windowsでファイルを削除すると、ソフトウェアはその削除時間の記録を保持します。毎日、削除されたファイルの有効期間が30日に達したファイルをスキャンし、存在する場合は削除します。

このようなソフトウェアはありますか?


おそらく、時間制限を設定する代わりに、特定のサイズ制限に達したときにごみ箱に最も古いアイテムを自動的に削除させることができますか?これは受け入れられますか?
ウィリアムジャクソン

3
@WilliamJacksonこれは、ハードディスクのスペースが限られている人向けのソリューションです。しかし、私の場合、最近削除したファイルが失われたために、リサイクルファイルを空にしたことを後悔しないようにしたいと思います。このシステムでは、ごみ箱を忘れてしまいます。ごみ箱は自動的に空になり、後で後悔した場合に削除されたファイルを回復するのに十分な時間があります。
hkBattousai

1
gnu / linuxの世界では、KDEにこの機能があり、使い勝手に優れていると思います。たとえば、1か月以上、ゴミ箱に保管する必要があるのはなぜですか?このアプローチは、不要な古いファイルでゴミ箱を散らかさないため、必要なときに1つまたは複数のファイルを見つけて復元するのがはるかに簡単ですファイル、常に小さい)、ディスクスペースを無駄にしないでください。
ゲルロス

エクスプローラのアドオンではなく、わずか24時間ですが、CCleanerにはこのオプションがありますi.imgur.com/JaeJhzU.png
マシューロック

回答:


9

RecycleBinExは、まさにあなたが求めることを行うWindows用のシンプルなアプリケーションです。参照:http : //www.fcleaner.com/recyclebinex

Mac OSXでは、Hazelは同じことを(他の中でも)行います:http//www.noodlesoft.com/

KDE Plasmaはこの機能をデフォルトとして出荷しているため、Kubuntu、Arch、Chackra Linux、または他のディストリビューションをKDEで実行している場合は、この機能をすでに持っています。Dolphin設定ウィンドウをご覧ください。

Ubuntu Unity、Gnome、または標準のFreeDesktop.orgのゴミ箱機能を提供する他のgnu / linuxデスクトップ環境では、AutoTrashを使用してこのことを実行できます。http : //www.logfish.net/pr/autotrash/
同様の動作も実現できます。ゴミ-CLI、それは右のコマンドラインからゴミ箱にファイルを送信するためにも使用することができます。参照:https : //github.com/andreafrancia/trash-cli

そこにあるほとんどのメールアプリにも、「ゴミ箱」用のこの機能があります。

Androidにはデフォルトで「ゴミ箱」はありません(削除すると永久に消えます)が、Dumpsterのようなアプリをインストールして(同様に)同様の機能を取得できます:http : //www.dumpsterapp.mobi/

上記のように、ゴミ箱から古いファイルを自動的に削除することは混乱を減らすために使いやすくするための素晴らしい機能だと思います(3ヶ月前にゴミ箱に入れたファイルはまだあなたに関連していますか?ファイル?)を使用して、復元したいものを見つけやすくします(これが、コンピューターに「ゴミ箱」を置く理由です)、それでも安全です。

テキストファイル(コードまたは散文)を頻繁に使用し、ほとんどの時間は小さく、多くのスペースを必要としない(したがって、ごみ箱のクォータに到達しない可能性がある)場合はさらに便利です。これにより、定期的に「ゴミ箱を空にする」必要さえなくなります。必要に応じて、「ゴミ箱に入れられた」ファイルを回復するための時間枠があることを知っています。

そこにあるほとんどのクラウドサービス(Dropbox、Googleドライブ、Simplenoteなど)を見ると、それらのほとんどは削除されたファイルに対して同様のポリシーを持っているようです。私は本当にあなたのファイルを扱うのは正しいことだと思います、そして彼らはそう思うようです。


1
あなたが答えをここに投稿して以来、私はこのソフトウェアを使用しています。結構いいです。満足しています。私はそれをお勧めします。これはまさに私が探していたものでした。ご回答有難うございます。
hkBattousai 14年

1
このリストに追加できるのはtrash-cli、に似たコマンドラインゴミツールでautotrash、コマンドラインからでもファイルをゴミに送信できます。webupd8.org/2010/02/make-rm-move-files-to-trash-instead-of.htmlおよびgithub.com/andreafrancia/trash-cliを
gerlos

RecycleBinExはWindows 10で動作しますか?Windows 10で提供されているデフォルトの機能ではないようです。
still_dreaming_1

1
@ still_dreaming_1(数ヶ月前)を最後に試したときはRecycleBinEx、Windows 10で動作するようでした。しかし、メインシステムとしては使用しないので、システムの最近の更新で動作するかどうかわかりません。
ゲルロス

1
Windows 10でRecycleBinExを試しました。GUIには奇妙な動作があります-ごみ箱の一部のファイルは1文字のファイル名で表示されますが、X日より古いファイルを削除するコマンドラインオプションは正常に動作するようです。コマンドラインオプションを表示するには、「RecycleBinEx.exe /?」と入力します。コマンドラインで。
アーロン

17

Explorerのアドオンは知りませんが、Windowsのほとんどの機能と同様に、これはPowerShellで実行できます。

ForEach ($Drive in Get-PSDrive -PSProvider FileSystem) {
    $Path = $Drive.Name + ':\$Recycle.Bin'
    Get-ChildItem $Path -Force -Recurse -ErrorAction SilentlyContinue |
    Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } |
    Remove-Item -Recurse
}

このスクリプトを.ps1拡張子付きのテキストファイルとして保存します。その後、タスクスケジューラを使用して、これを定期的に実行できます。

ただし、最初はPowerShellスクリプトの実行を許可する必要があります。これは、既定ではPowerShellプロンプトに直接入力したコマンドしか実行できないためです。これを行うには、PowerShellを開き、次のコマンドを入力します。

Set-ExecutionPolicy RemoteSigned

プロンプトが表示されたら、「y」または「yes」と入力します。詳細についてはGet-Help Set-ExecutionPolicy、を参照してください。

タスクスケジューラを開き、次のパラメーターを使用して新しいタスクを作成します。

  1. [全般]タブで名前を入力し、[最高の権限で実行する]オプションをオンにします
  2. [トリガー]タブで、新しいトリガーを追加し、タスクを毎日実行するように設定します
  3. [アクション]タブで、新しいアクションを追加します。
    • タイプを「プログラムの開始」のままにします
    • 「プログラム/スクリプト」フィールドを C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
    • 「引数の追加」フィールドを -NonInteractive -File "C:\path\to\script.ps1"
  4. [条件]タブで、[コンピューターがAC電源になっている場合のみタスクを開始する]をオフにします。

スクリプトの行ごとの説明:

ForEach ($Drive in Get-PSDrive -PSProvider FileSystem) {

これは、コンピューター内のすべてのドライブのリストを取得し、それらを1つずつループします。-PSProvider FileSystemPowerShellにはレジストリハイブなどの他のさまざまなものに対する擬似ドライブもあるため、このパラメーターはディスクドライブのみを返すために必要です。

詳細については、PowerShellでのループ処理に関するこのチュートリアルを参照Get-Help Get-PSDriveてください

$Path = $Drive.Name + ':\$Recycle.Bin'

これにより、現在のドライブのごみ箱フォルダーへのパスが作成されます。PowerShell $Recycleが変数として解釈されないように、2番目の部分を単一引用符で囲むことに注意してください。

Get-ChildItem $Path -Force -Recurse -ErrorAction SilentlyContinue |

これは、指定されたパス(前のコマンドで作成したもの)の下にあるすべてのファイルとサブフォルダーを返します。この-Forceパラメーターは、隠しフォルダーやシステムフォルダーに移動するために必要であり、-Recurseパラメーターによってコマンドが再帰的になります。すべてのサブディレクトリもループします。-ErrorActionはほとんどのPowerShellコマンドの標準パラメーターであり、この値SilentlyContinueによりコマンドはエラーを無視します。これの目的は、ファイルをすぐに削除するように構成されたドライブのエラーを防ぐことです。|最後の記号は、結果を次のコマンドにパイプします。読みやすくするために、数行に分割しました。

詳細については、を参照してくださいGet-Help Get-ChildItem

Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } |

これは、前のコマンドからの結果を単にフィルターし、30日より古いもののみを返します。$_は現在処理中のオブジェクトを指しLastWriteTime、この場合のプロパティはファイルが削除された日付と時刻を指します。Get-Date現在の日付を返します。

詳細についてはGet-Help Where-Object、およびを参照してくださいGet-Help Get-Date

Remove-Item -Recurse

これは、前のコマンドで渡されたアイテムを削除するだけです。この-Recurseパラメーターは、空でないサブフォルダーの内容を自動的に削除します。それなしでは、そのようなフォルダを要求されます。

詳細については、を参照してくださいGet-Help Remove-Item


設定しました。これを詳細に説明していただき、ありがとうございます。
hkBattousai

3
実行ポリシーをグローバルに設定する代わりに、プロセスに設定するコマンドラインを作成できますpowershell -ExecutionPolicy RemoteSigned -File .\myscript.ps1
jpmc26 14

エクスプローラーの詳細ビューのごみ箱には特別な列「削除日」がありますが、代わりにそれを使用してどのようにフィルタリングできますか?LastWriteTimeは、決して同じものではありません。
シアンティック

あまりにも早く話して、これを見つけました:baldwin-ps.blogspot.fi/2013/07/…それには「Date Deleted」も含まれています。
シアンティック

4

Windowsのごみ箱は、最大サイズに達すると古いファイルを自動的に削除します。ごみ箱が割り当てられたスペースを使い果たすとどうなりますか?

これは、Recylce Binのプロパティから制御できます。

ここに画像の説明を入力してください


1
このメカニズムはファイルの特定の年齢を考慮していないため、この答えは質問に答えません。データのプリセットボリュームを維持するために、任意の年齢の最も古いファイルのみを削除します。
ジョナサンJ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.