Powershell 删除超过2周的特定文件夹,但有一些例外

Powershell 删除超过2周的特定文件夹,但有一些例外,powershell,Powershell,我只需要删除工作区文件夹,超过2周,在一个特定的目录中的各种工作文件夹中包含 示例:我的根目录C:\DeleteTest包含4个文件夹: Job1 Job2 Job3 Job4 每个文件夹都包含一个文件列表和一个工作区文件夹。 我只需要删除这个工作区文件夹,它的时间超过2周,但Job2中的工作区文件夹除外 小心,-notin期望完全匹配,因此Job2和Job不会匹配 我将调用Get-ChildItem cmdlet两次。第一次,要检索C:\DeleteTest的所有子文件夹,请排除$exclu

我只需要删除工作区文件夹,超过2周,在一个特定的目录中的各种工作文件夹中包含

示例:我的根目录C:\DeleteTest包含4个文件夹:

Job1
Job2
Job3
Job4
每个文件夹都包含一个文件列表和一个工作区文件夹。 我只需要删除这个工作区文件夹,它的时间超过2周,但Job2中的工作区文件夹除外

小心,-notin期望完全匹配,因此Job2和Job不会匹配

我将调用Get-ChildItem cmdlet两次。第一次,要检索C:\DeleteTest的所有子文件夹,请排除$excludeFolders中的所有文件夹。第二次检索此文件夹中的所有工作区目录,并按所需的创建时间对其进行筛选。最后,使用Remove-Item cmdlet删除文件夹:


为什么是工作2?什么标准?这只是一个例子。有一个不应删除的2周前的作业列表。这不会删除作业文件夹中的所有文件和文件夹吗?我只需要从每个作业文件夹中删除文件夹“workspace”。如果您希望修改答案以满足您的需要,我已更新了它。例如,如果每个作业文件夹都有“workspace”文件夹,一个“测试”文件夹和3个文档文件。您是否知道您不是在检查工作区文件夹的creationtime,而是在检查job1、job2、job3。。。。?因为他想删除超过2周的工作区文件夹哦,该死,等等,让我来解决这个问题。谢谢我没注意到
Get-ChildItem C:\DeleteTest -Directory -Filter Workspace | % {
  if ($_.Parent.Name -notin $array_of_folders_not_to_be_deleted -and $_.CreationTime -le (Get-Date).Adddays(-14)) {
    Remove-Item $_.FullName -Recurse -Force 
    }
}
$excludeFolders = @('Job2')
Get-ChildItem C:\DeleteTest -Directory | Where Name -NotIn $excludeFolders |
     Get-ChildItem -Filter 'workspace' -Directory | Where { $_.CreationTime -le (Get-Date).Adddays(-14) } |
     Remove-Item -Force -Recurse
gci "C:\temp\DeleteTest\Job*\workspace" -directory | 
    ? { $_.FullName -notlike "C:\temp\DeleteTest\Job2\*" -and $_.CreationTime -le (get-date).AddDays(-14)} | 
        Remove-Item -Recurse -Force