我正在尝试压缩我们每天收到的所有销售数据,并在处理完文件后将其归档并将zip文件重命名为saletransactions_mmddyyyy.zip
。我的脚本试图压缩每个单独的文件。如何将所有文件更改为一个zip文件。
$srcPath = "\\networkshare\test\sale"
$destPath = "\\networkshare\test\sale\archive\"
$ext = Get-ChildItem -Path $srcPath | Where-Object { ($_.Extension -eq ".txt") }
Set-Alias sz "\\networkshare\test\7z.exe"
foreach ($file in $ext) {
$name = $file.Name
$directory = $file.DirectoryName
$zipfile = $name.Replace(".txt", ".7z")
sz a -t7z "$destPath\$($file.BaseName).zip" $file
}
答案 0 :(得分:0)
在代码的最后一行,这里
sz a -t7z "$destPath\$($file.basename).zip" $file
在这一行中,您告诉7Zip将文件添加到zip存档中,该存档的名称与您要添加的文件相同。这意味着输出zip将始终与文件名相同,这就是为每个输入文件获取一个zip文件的原因。
如果您想将它们全部添加到每月存档中,请首先在代码顶部的某处定义输出文件的名称,如下所示。
$month = "03_2017"
然后,将最后一行改为此,你就会好起来。
7z a -t7z $destPath\$month.zip" $file