Compress-7zip每个对象

问题描述 投票:0回答:2

我正在尝试生成一个脚本,该脚本将转到目录并将每个文件压缩为与该文件同名的.zip。

我使用compress-archive进行管理,但是它对2GB以下的文件有限制。

所以搜索,我发现compress-7zip,但是它使用不同的参数。

$InputFolder= "C:\Temp\teste"
$OutputFolder="C:\Temp\teste"

#coletando arquivos
$CsvFiles = Get-ChildItem $InputFolder -Filter '*.xlsx'

#loop compactar arquivos
$CsvFiles | ForEach-Object { 
    $zipSetName =  $_.BaseName + ".zip"
    Compress-7zip -Path $InputFolder -Format Zip -ArchiveFileName $zipSetName
}

但是我使用compress-7zip未能成功完成,上面的脚本无法正常运行,我传递的参数错误吗?手动执行此操作即可,但是会将所有文件都放入一个文件中。有人可以帮助我使上述脚本起作用,该脚本逐文件压缩。

powershell 7zip
2个回答
0
投票

您可以阅读提到的here功能,包括参数名称。

在这种情况下,使用

$CsvFiles | ForEach-Object { 
    $zipSetName = [System.IO.Path]::ChangeExtension($_.FullName, '.zip')
    Compress-7zip -FullName $_.FullName -OutputFile $zipSetName -ArchiveType Zip 
}

© www.soinside.com 2019 - 2024. All rights reserved.