Powershell 压缩并归档指定文件夹中的所有文件

Powershell 压缩并归档指定文件夹中的所有文件,powershell,zip,7zip,Powershell,Zip,7zip,我正在尝试压缩我们每天收到的所有销售数据,并在处理完文件后存档,并将压缩文件重命名为saletransactions\u mmddyyyy.zip。我的脚本试图压缩每个单独的文件。如何将所有文件更改为一个zip文件 $srcPath=“\\networkshare\test\sale” $destPath=“\\networkshare\test\sale\archive\” $ext=Get ChildItem-Path$srcPath | Where对象{($\扩展名-eq.txt)} 设置

我正在尝试压缩我们每天收到的所有销售数据,并在处理完文件后存档,并将压缩文件重命名为
saletransactions\u mmddyyyy.zip
。我的脚本试图压缩每个单独的文件。如何将所有文件更改为一个zip文件

$srcPath=“\\networkshare\test\sale”
$destPath=“\\networkshare\test\sale\archive\”
$ext=Get ChildItem-Path$srcPath | Where对象{($\扩展名-eq.txt)}
设置别名sz“\\networkshare\test\7z.exe”
foreach($ext中的文件){
$name=$file.name
$directory=$file.DirectoryName
$zipfile=$name.Replace(“.txt”,“.7z”)
sz a-t7z“$destPath\$($file.BaseName).zip”$file
}

在代码的最后一行,这里

sz a -t7z "$destPath\$($file.basename).zip" $file 
在这一行中,您告诉7Zip将一个文件添加到zip存档中,该文件的名称与您要添加的文件的名称相同。这意味着输出zip将始终与文件名相同,这就是为什么每个输入文件都有一个zip文件

如果您想将它们全部添加到每月存档中,请首先在代码顶部的某个位置定义输出文件的名称,如下所示

$month = "03_2017"
然后,把最后一行改成这行,你就可以走了

7z a -t7z $destPath\$month.zip" $file