每天将 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) }
所以我正在尝试浏览一个文件夹并压缩所有 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) }