如果文件夹名称超过30天,则删除

安德鲁

我正在尝试删除30天前通过的所有文件夹,但是我需要以文件夹名称(而不是创建日期)为基础。生成文件并将其放置在带有月份的文件夹中,并在文件夹中放置月份日期和年份。月格式类似于MM yyyy,月日期类似于MMddyyyy。我有一个脚本在Powershell V2中工作正常,但是在Powershell V3中停止了工作。

这是我的V2脚本

function Delete-Folder-30days

$today = get-date -displayhint date
$30days = (get-date).AddDays(-30)

$folders = (gci "\\$args\Apps\AndrewTest" | where-object {$_.PSIsContainer -eq $True})


foreach ($f in $folders) {
$folderdate = get-date -mont $f.Name.substring(0,2) -day $f.Name.substring(2,2) -year $f.Name.substring(4,2)


if ($folderdate)
    {
    Remove-Item "\\$args\Apps\AndrewTest\$f" -recurse
    }
   }
}

Delete-Folder-30days $Server

我在这里可能做错了什么?

谢谢,安德鲁

疯狂技术员

尝试使用[DateTime] :: ParseExact()方法,它对于您的用途而言要简单得多:

function Delete-Folder-30days{
    gci "\\$args\Apps\AndrewTest" -Directory | ?{[datetime]::ParseExact($_.Name,"MMddyyyy",$null) -lt (get-date).AddDays(-30)} | Remove-Item -Recurse
}

Delete-Folder-30days $Server

编辑:对不起!如果将String和Format切换了(应该像("04122014","MMddyyyy",$null)),但是我把前两个参数颠倒了。

Edit2:您还希望它也包含.zip文件吗?有几件事。如果要包括所有文件,那么这确实很简单。只需-DirectoryGCI命令中删除,它将查看目标目录中的所有文件和文件夹。如果您只想要文件夹和.ZIP文件,则它会变得有些复杂。基本上,我们仍然会删除-Directory开关,但是我们必须向Where子句中添加一些过滤,如下所示:

?{($_.PSIsContainer -and [datetime]::ParseExact($_.Name,"MMddyyyy",$null) -lt (get-date).AddDays(-30)) -or ($_.Extension -ieq ".zip" -and [datetime]::ParseExact($_.BaseName,"MMddyyyy",$null) -lt (get-date).AddDays(-30))} 

因此,您现在问的不仅是检查特殊格式的日期,还问这是文件夹还是具有.zip文件扩展名?如果这两个条件中至少有一个是正确的,那么它是否与特殊格式的日期匹配?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Powershell-删除特定名称超过30天的文件夹中的子文件夹

来自分类Dev

删除超过1天的文件夹

来自分类Dev

删除超过5天的文件夹

来自分类Dev

如果文件夹日期为30天,则删除文件夹和文件

来自分类Dev

如果所有文件都超过3天,则批处理文件以删除目录中的子文件夹

来自分类Dev

删除文件夹及其子文件夹中超过7天的文件

来自分类Dev

在超过20天的文件夹中查找tar.gz文件并删除

来自分类Dev

删除 /tmp 中超过一天的所有文件和文件夹

来自分类Dev

如何删除超过一天的文件夹?(Cron Job)

来自分类Dev

bash脚本删除name_date超过90天的文件夹

来自分类Dev

如何删除超过一天的文件夹?(Cron Job)

来自分类Dev

Cron 作业自动删除 Centos 中超过 7 天的文件夹

来自分类Dev

如果Windows上其他位置存在相同的文件夹名称,则删除文件夹

来自分类Dev

如果文件夹的总大小超过10G,则删除文件夹中最早的文件

来自分类Dev

Bash脚本删除30天以上但省略1和15的文件夹

来自分类Dev

删除名称超过256个字符的隐藏文件夹/文件

来自分类Dev

如何从Blob容器中删除超过30天的文件?

来自分类Dev

从超过 X 天的 S3 存储桶中删除文件夹、子文件夹和所有文件

来自分类Dev

删除文件夹(如果存在)

来自分类Dev

从URL删除文件夹名称

来自分类Dev

使用Htaccess删除文件夹名称

来自分类Dev

想要在过去30天之内使用批处理仅从目录中删除空文件夹

来自分类Dev

从PHP文件夹中删除3天的旧文件

来自分类Dev

如果超过N GB,则使用VBScript获取目录大小,然后删除最旧的“文件夹”以恢复空间

来自分类Dev

删除超过xx天的文件

来自分类Dev

删除超过500天的文件

来自分类Dev

删除超过500天的文件

来自分类Dev

如果另一个文件夹中不存在类似名称的文件,则从一个文件夹中删除文件

来自分类Dev

如果其中存在文件,则更改文件夹的名称

Related 相关文章

  1. 1

    Powershell-删除特定名称超过30天的文件夹中的子文件夹

  2. 2

    删除超过1天的文件夹

  3. 3

    删除超过5天的文件夹

  4. 4

    如果文件夹日期为30天,则删除文件夹和文件

  5. 5

    如果所有文件都超过3天,则批处理文件以删除目录中的子文件夹

  6. 6

    删除文件夹及其子文件夹中超过7天的文件

  7. 7

    在超过20天的文件夹中查找tar.gz文件并删除

  8. 8

    删除 /tmp 中超过一天的所有文件和文件夹

  9. 9

    如何删除超过一天的文件夹?(Cron Job)

  10. 10

    bash脚本删除name_date超过90天的文件夹

  11. 11

    如何删除超过一天的文件夹?(Cron Job)

  12. 12

    Cron 作业自动删除 Centos 中超过 7 天的文件夹

  13. 13

    如果Windows上其他位置存在相同的文件夹名称,则删除文件夹

  14. 14

    如果文件夹的总大小超过10G,则删除文件夹中最早的文件

  15. 15

    Bash脚本删除30天以上但省略1和15的文件夹

  16. 16

    删除名称超过256个字符的隐藏文件夹/文件

  17. 17

    如何从Blob容器中删除超过30天的文件?

  18. 18

    从超过 X 天的 S3 存储桶中删除文件夹、子文件夹和所有文件

  19. 19

    删除文件夹(如果存在)

  20. 20

    从URL删除文件夹名称

  21. 21

    使用Htaccess删除文件夹名称

  22. 22

    想要在过去30天之内使用批处理仅从目录中删除空文件夹

  23. 23

    从PHP文件夹中删除3天的旧文件

  24. 24

    如果超过N GB,则使用VBScript获取目录大小,然后删除最旧的“文件夹”以恢复空间

  25. 25

    删除超过xx天的文件

  26. 26

    删除超过500天的文件

  27. 27

    删除超过500天的文件

  28. 28

    如果另一个文件夹中不存在类似名称的文件,则从一个文件夹中删除文件

  29. 29

    如果其中存在文件,则更改文件夹的名称

热门标签

归档