在powershell中使用7zip时出现压缩问题

在powershell中使用7zip时出现压缩问题,powershell,zip,powershell-2.0,7zip,Powershell,Zip,Powershell 2.0,7zip,我制作了一个powershell脚本来查看文件夹,并将30天以前的所有文本文件转换为zip文件。但是,我有两个错误: 1:如果只有一个文件夹包含文件,那么代码可以正常工作,如果有多个文件夹,则会给出错误的输出 2:我需要一个zip文件,每个文件都有30天的历史,即a.log、b.log和c.log应该转换为a.zip、b.zip、c.zip 此外,在操作结束后,应删除旧的日志文件。这是我的代码,请帮助我: $Pathname="G:\7za920\test" $folders = (Get-C

我制作了一个powershell脚本来查看文件夹,并将30天以前的所有文本文件转换为zip文件。但是,我有两个错误:

1:如果只有一个文件夹包含文件,那么代码可以正常工作,如果有多个文件夹,则会给出错误的输出

2:我需要一个zip文件,每个文件都有30天的历史,即a.log、b.log和c.log应该转换为a.zip、b.zip、c.zip

此外,在操作结束后,应删除旧的日志文件。这是我的代码,请帮助我:

$Pathname="G:\7za920\test"

$folders = (Get-ChildItem -Path $pathname | 
             Where-Object {$_.Attributes -eq "Directory"} | 
              Select Fullname).Fullname

Foreach ($folder in $folders){
  $files = Get-ChildItem -Path "$folder" | 
    Where{$_.LastWriteTime -lt (Get-Date).AddDays(-30)}

    Foreach ($file in $files){
       ./7za.exe a -tzip archive.zip $file.FullName     
    }
}

您观察到的“错误”输出是什么?您的$folders数组将只包含$Pathname目录中的文件夹,因为Get ChildItem不会在子目录中递归查找文件夹,除非您指定-Recurse选项,否则您将需要使用所需的特定于文件的zip存档名称替换archive.zip。