powershell脚本列出不包含最新备份文件的文件夹

时间:2018-03-15 14:35:02

标签: powershell powershell-v2.0 powershell-v3.0 powershell-v4.0

我需要一个PowerShell脚本来检查最近的备份文件,并列出任何不包含最近备份的文件夹。我需要搜索文件夹及其子文件夹,并仅返回不包含30天以内文件*.cfg的文件夹名称。

到目前为止,我有(c:\backups contains multiple subfolders which contain the *.cfg files) -

gci C:\backups\ -Recurse -Include *.cfg |
Where-Object {$_.LastWriteTime -gt (Get-Date).AddDays(-30)}| Select Directory -Unique

这可以工作,但相反,它列出了具有该文件的文件夹。我需要反转不包含该文件的逻辑和列表文件夹。我已经尝试了几个选项-not和!在where-object但没有任何作用。如果有人可以提供帮助会很棒吗?

2 个答案:

答案 0 :(得分:0)

嗯,你已经建立了一个排除列表......

CreateAsync

答案 1 :(得分:0)

经过gms0ulman的一些输入后,再次感谢,我想出了以下内容 -

$ foldersWhichHaveBackups = gci'C:\ backup'-Recurse -Include * .cfg | ? {$ _.LastWriteTime -gt(Get-Date).AddDays(-30)} |选择目录-Unique

$ allFolders = gci'C:\ backup' -Directory |选择FullName

Compare-Object $ allfolders.FullName $ foldersWhichHaveBackups.Directory | select -ExpandProperty inputobject

如果有人能提出更好的方式我非常渴望学习。