【发布时间】:2015-11-10 22:23:52
【问题描述】:
我已经到处搜索了,但似乎没有什么能完全满足我的需要..
我有一个这样的文件夹结构:
- C:\Test\Job1\attachments\
- C:\Test\Job2\attachments\
- C:\Test\Job3\attachments\
我想删除 C:\Test 中的所有文件和文件夹(但不是 C:\Test 本身)如果它们的附件文件夹是空的。非空附件目录应单独保留。应删除所有其他文件和文件夹。
因此,如果上述路径中的唯一文件是 C:\Test\Job2\attachments\test.txt,那么在我的脚本之后剩下的唯一文件夹就是 C:\Test\Job2\attachments。 Job1 和 Job3 目录将被删除。
-
为了让事情顺利进行,我已经尝试过这样做,以便删除除附件文件夹之外的所有内容:
$TargetFolder = "C:\Test\*" get-childitem $TargetFolder -exclude attachments* -recurse | remove-item -WhatIf
...但它似乎完全忽略了 -exclude 标志
-
这有点用,但它提示我需要对它说“不”才能正常工作:
Get-ChildItem -Path $TargetFolder -Recurse | Select -ExpandProperty FullName | Where {$_ -notlike $TargetFolder + "*\attachments\*.*"} | sort length -Descending | Remove-Item -Force
...如果是与-Force相反的东西,那就太好了
【问题讨论】:
标签: powershell-3.0 administration