Powershell 脚本返回过去 7 天内未创建/修改 Zip 文件的目录

Powershell 脚本返回过去 7 天内未创建/修改 Zip 文件的目录

我在服务器上有一系列文件夹,需要定期检查它们是否已正确备份。我们希望该文件夹中至少有 1 个备份,且备份时间不少于 7 天。备份采用 .zip 格式。

我希望能够看到不要包含过去 7 天内修改或创建的任何 zip 文件。

以下是文件结构的示例:

\\server01\backups\PLANT1\A
\\server01\backups\PLANT1\B
\\server01\backups\PLANT2\A
\\server01\backups\PLANT2\B
...etc

我设法编写了一个 powershell 脚本,该脚本返回 zip 文件的完整目录,另一个脚本列出过去 7 天内修改过的目录,但没有一个脚本只返回那些没有我们需要的文件的目录。

这是我刚才提到的脚本:

$DateToCompare = (Get-date).AddDays(-7)
Get-ChildItem \\server01\backups -recurse -include *.zip | Where {(!$_.PsIsContainer) -and ($_.lastwritetime -gt $DateToCompare)} | select DirectoryName,Name,LastWriteTime | sort DirectoryName

非常感谢您的指导。

编辑:

这是最终形式的代码。我非常接近了。

$DateToCompare = (Get-Date).AddDays(-7)
Get-ChildItem \\server01\backups -recurse -include *.zip | Where {(!$_.PsIsContainer) -Notcontains ($_.creationtime -gt $DateToCompare)} | select DirectoryName,Name,CreationTime | sort DirectoryName

答案1

您在这里缺少的唯一一块拼图是“-notcontains”标志,该标志将在“Where”子句中声明。您确切地知道您想要得到什么摆脱但是你发布的代码节目正是您不想要的。使用 -notcontains 选择“排除”而不是“仅选择”您指定的项目。

来源:http://technet.microsoft.com/en-us/library/ee692798.aspx

相关内容