我正在尝试生成一个脚本,该脚本将转到目录并将每个文件压缩为与该文件同名的.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未能成功完成,上面的脚本无法正常运行,我传递的参数错误吗?手动执行此操作即可,但是会将所有文件都放入一个文件中。有人可以帮助我使上述脚本起作用,该脚本逐文件压缩。
您可以阅读提到的here功能,包括参数名称。
在这种情况下,使用
$CsvFiles | ForEach-Object {
$zipSetName = [System.IO.Path]::ChangeExtension($_.FullName, '.zip')
Compress-7zip -FullName $_.FullName -OutputFile $zipSetName -ArchiveType Zip
}