我需要一个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但没有任何作用。如果有人可以提供帮助会很棒吗?
答案 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
如果有人能提出更好的方式我非常渴望学习。