每天将 x 天前的文件压缩到文件夹中

Zipping files x days old into folder per day

所以我正在尝试浏览一个文件夹并压缩所有 30 天前修改过的文件,然后将它们压缩到名称为 MM/dd/yyyy.

的文件中

我一直在尝试使用这个

for ($i=0; $i -le 30; $i++) 
{
$Date = get-date -format d((get-date).adddays(-$i))
get-childitem "\Directory\*" | where-object {$_.LastWriteTime -eq $date}
}

但是使用它只能获取日期时间 00:00,并且当时没有创建或修改任何内容。我需要完全检查当天创建的任何内容。

我怎样才能将它发送到 return 当天创建或修改的任何内容,而不是特定时间?

我将使用它来将文件压缩到一个文件夹中,但这不是我卡住的地方。

Add-Type -Assembly "System.IO.Compression.FileSystem"
[System.IO.Compression.ZipFile]::CreateFromDirectory($Dir, $DirZip)

谢谢, 安德鲁

使用等号比较,它严格地寻找完全匹配。相反,您应该检查日期范围,您可以使用大于和小于来执行此操作。

Get-ChildItem "\Directory\*" | Where-Object {$_.LastWriteTime -gt (Get-Date).AddDays(-$i) -and $_.LastWriteTime -lt (Get-Date).AddDays(-$i+1) }