Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否根据powershell中顶级目录的使用年限删除目录?_Powershell - Fatal编程技术网

是否根据powershell中顶级目录的使用年限删除目录?

是否根据powershell中顶级目录的使用年限删除目录?,powershell,Powershell,我在一个目录中有一堆文件夹,它们都包含许多不同年代的子目录。我需要做的是根据顶级目录的使用年限删除其中的文件夹。我尝试了一些方法,但结果是它递归目录并删除它们 例如,假设我想删除超过14天的顶级文件夹(以及它们的内容,而不考虑年龄): C:\myfolder\folder1(保存30天) C:\myfolder\folder1\subfolder1(保存10天) 我想删除folder1和所有内容,即使子文件夹1比14天新 有道理吗?我试过: Get-ChildItem -Path c:\myfo

我在一个目录中有一堆文件夹,它们都包含许多不同年代的子目录。我需要做的是根据顶级目录的使用年限删除其中的文件夹。我尝试了一些方法,但结果是它递归目录并删除它们

例如,假设我想删除超过14天的顶级文件夹(以及它们的内容,而不考虑年龄): C:\myfolder\folder1(保存30天) C:\myfolder\folder1\subfolder1(保存10天)

我想删除folder1和所有内容,即使子文件夹1比14天新

有道理吗?我试过:

Get-ChildItem -Path c:\myfolder -Force | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt 30 } | Remove-Item -Force

但这并没有删除任何内容?我错过了什么?谢谢

creationTime是一个日期,因此您不能仅将其与数字进行比较:

Get-ChildItem -Path c:\myfolder -Force | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt (get-date.addDays(-30)) } | Remove-Item -Force

您缺少排除具有
Where对象{!$\psicontainer}
的文件夹。所以你告诉它不要包含文件夹

此外,您还希望将日期与日期进行比较

Get-ChildItem -Path c:\myfolder -Force | Where-Object { $_.PSIsContainer -and $_.CreationTime  -lt (get-date).adddays(-29) } | Remove-Item -Force

啊!非常感谢你。我不知道不是接线员进的。请再来点咖啡。现在效果很好-再次感谢。