【发布时间】:2022-01-26 09:09:23
【问题描述】:
文件夹 X 有很多子文件夹 A、B、C、D... 每个子文件夹都有很多文件,我想归档这些子文件夹中所有超过 6 个月的文件。之后检查是否创建了存档并删除已存档的文件。
这是我尝试过的:
#$SourceFolder = "C:\Users\sec\Desktop\X"
ForEach-Object
{
Get-ChildItem -Path "$($_.FullName)" -Exclude "*.zip"
Where-Object {($_.LastWriteTime -lt (Get-Date).AddMonths(-6))} |
Compress-Archive -DestinationPath "$($_.FullName)\06.2020andOlder.zip" -Update;
if (Test-Path 06.2020andOlder.zip) {
Remove-Item -Force
}
}
【问题讨论】:
-
应该每个子文件夹都有自己的
06.2020andOlder.zip存档,还是要将所有内容存储在一个更大的 zip 文件中? -
每个文件夹都应该有自己的 zip,因为在每个文件夹中我都有不同机器的日志,如果有一天我想查找它们会更容易找到。
-
这是我的假设,但不是太清楚。请在下面查看我的回答。
-
如果您存储每个文件的相对路径,它仍然很容易找到,并且您可以使用更少的 zip 文件和稍微更好的压缩。试试我的解决方案here,看看它是否适合您的需求。
标签: powershell file archive