我想要一个资源管理器附加程序,它将在一段时间后从回收站中删除旧文件。
例如,我要将时间限制设置为30天。当我在Windows中删除文件时,该软件将保留其删除时间记录。每天,它都会扫描已存在30天的已删除文件,如果有,则将其删除。
有没有这样的软件?
我想要一个资源管理器附加程序,它将在一段时间后从回收站中删除旧文件。
例如,我要将时间限制设置为30天。当我在Windows中删除文件时,该软件将保留其删除时间记录。每天,它都会扫描已存在30天的已删除文件,如果有,则将其删除。
有没有这样的软件?
Answers:
RecycleBinEx是一个简单的Windows应用程序,完全可以满足您的要求。请参阅:http://www.fcleaner.com/recyclebinex
在Mac OSX上,Hazel(除其他功能外)执行相同的操作:http : //www.noodlesoft.com/
KDE Plasma 默认提供此功能,因此,如果您正在运行Kubuntu,Arch,Chackra Linux或任何其他带有KDE的发行版,则已经具有此功能。只需查看Dolphin配置窗口。
在提供标准FreeDesktop.org Trash功能的Ubuntu Unity,Gnome或任何其他gnu / linux桌面环境上,您可以使用AutoTrash进行此操作:http : //www.logfish.net/pr/autotrash/
也可以实现类似的行为使用trash-cli,也可以直接从命令行将文件发送到垃圾箱。参见:https : //github.com/andreafrancia/trash-cli
那里的大多数电子邮件应用程序的“垃圾箱”也都具有此功能。
在Android上,默认情况下没有任何“垃圾桶”(删除时,它会永远消失),但是您可以安装Dumpster之类的应用以(以某种方式)获得类似的功能:http : //www.dumpsterapp.mobi/
如上所述,我认为自动从垃圾箱中删除旧文件是使其更易使用的一项重要功能,因为它可以减少混乱(三个月前您丢弃的那些文件是否仍与您相关?并且所有这些相同的旧版本文件?),并且更容易找到您想要恢复的内容(毕竟,这是在我们的计算机上安装“垃圾桶”的原因),但仍然安全。
如果您要处理大量文本文件(代码或散文),则该功能甚至会更有用,因为大多数时间都很小,不需要太多空间(因此可能永远也达不到垃圾桶的配额)。这样,您甚至不需要定期“清空垃圾箱”。您只知道您有时间来恢复“已删除”的文件。
查看大多数云服务(Dropbox,Google Drive,Simplenote等),其中大多数似乎对删除文件都有类似的策略。我真的认为对您的文件进行处理是正确的,他们似乎也这么认为。
trash-cli
,类似于的命令行垃圾回收工具autotrash
,即使您从命令行也可以将文件发送到垃圾箱。参见webupd8.org/2010/02/make-rm-move-files-to-trash-instead-of.html和github.com/andreafrancia/trash-cli
RecycleBinEx
似乎可以在Windows 10上运行。但是我没有将其用作主系统,因此我无法确定它是否仍可用于该系统的最新更新。
我不知道任何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
以获取更多信息。
现在打开任务计划程序,并使用以下参数创建一个新任务:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
-NonInteractive -File "C:\path\to\script.ps1"
脚本的逐行说明:
ForEach ($Drive in Get-PSDrive -PSProvider FileSystem) {
这将获取计算机中所有驱动器的列表,并逐一循环遍历它们。-PSProvider FileSystem
仅返回磁盘驱动器才需要该参数,因为PowerShell还具有用于注册表项配置单元等其他各种事物的伪驱动器。
有关更多信息,请参阅Get-Help Get-PSDrive
和本教程有关PowerShell中的循环处理。
$Path = $Drive.Name + ':\$Recycle.Bin'
这将在当前驱动器上构造“回收站”文件夹的路径。请注意在第二部分周围使用单引号,以防止PowerShell解释$Recycle
为变量。
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
。
powershell -ExecutionPolicy RemoteSigned -File .\myscript.ps1
。
Windows回收站达到最大大小时会自动删除较旧的文件:回收站用完分配的空间后会发生什么?
您可以从Recylce Bin的属性中控制它