Windows – 文件夹中的文件过期:x天后删除文件

前端之家收集整理的这篇文章主要介绍了Windows – 文件夹中的文件过期:x天后删除文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在每个人都可以访问的 Windows共享驱动器中创建一个“删除文件夹”.如果文件文件夹中存放超过X天,我希望自动删除文件.

但是,似乎我发现的所有方法都是这样做的,使用上次修改日期,上次访问时间或文件的创建日期.

我正在尝试将此文件夹设置为用户可以将文件放入其中以与某人共享.如果有人将文件复制或移动到这里,我希望时钟开始滴答作响.但是,除非有人实际修改文件,否则不会更新文件的上次修改日期和创建日期.上次访问时间过于频繁更新……似乎只需在Windows资源管理器中打开目录即可更新上次访问时间.

有人知道解决方案吗?我认为每天对文件的哈希进行编目,然后根据早于某个日期的哈希值来过期文件可能是一个解决方案……但是采取文件哈希可能非常耗时.

任何想法将不胜感激!

注意:
我已经在这里查看了很多答案…查看了文件服务器资源监视器,powershell脚本,批处理脚本等.他们仍然使用上次访问时间,上次修改时间或创建时间……其中,如上所述,不符合上述需求.

我们使用了powershell脚本和策略的组合.该策略指定用户必须在Drop_Zone共享内​​创建一个文件夹,然后将他们想要的任何文件复制到该文件夹​​中.当文件夹变为7天(使用CreationTime)时,powershell脚本将删除它.

我还在powershell脚本中添加了一些日志记录,这样我们就可以验证它的操作并打开卷影副本,只是为了保存完全无能为力.

这是没有所有日志记录的脚本.

$location = Get-ChildItem \\foo.bar\Drop_Zone
$date = Get-Date
foreach ($item in $location) {
  # Check to see if this is the readme folder
  if($item.PsIsContainer -and $item.Name -ne '_ReadMe') {
    $itemAge = ((Get-Date) - $item.CreationTime).Days
    if($itemAge -gt 7) {
      Remove-Item $item.FullName -recurse -force
    }
  }
  else {
  # must be a file
  # you can check age and delete based on that or just delete regardless
  # because they didn't follow the policy
  }
}

猜你在找的Windows相关文章