powershell - Compress-7zip 每个对象
问题描述
我正在尝试生成一个脚本,该脚本进入目录并将每个文件压缩为与文件同名的 .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 没有成功,上面的脚本不起作用,呵呵,我是否传递了错误的参数?手动操作可以,但是将所有文件放入一个文件中。有人可以帮助我使上述脚本工作,逐个文件压缩文件。
解决方案
您可以阅读此处提到的函数,包括参数名称。
在这种情况下,使用
$CsvFiles | ForEach-Object {
$zipSetName = [System.IO.Path]::ChangeExtension($_.FullName, '.zip')
Compress-7zip -FullName $_.FullName -OutputFile $zipSetName -ArchiveType Zip
}
PS我在ChangeExtension
这里使用了这个方法,因为你的输入和输出路径都是一样的。如果不是这种情况,请使用
$zipSetName = Join-Path -Path $OutputFolder -ChildPath ($_.BaseName + '.zip')
推荐阅读
- sql - 如何在 GROUP BY 中正确 GROUP BY 以获取多个 COUNTS 的 COUNT
- mysql - Retrofit2 MySQL 使用新的 Android Studio 3.6 重复了 @POST 请求
- visual-studio-code - 如何在自定义 VSCode 语言中引用注入的语法
- sql-server - 捕获删除临时表中行的用户
- kotlin - Kotlin 推断 JOOQ 方法错误
- sql - 使用阈值限制插入/删除
- vue.js - 更改 Quasar 表中的特定列
- python-3.x - Python 新手并使用 Flask,我的 POST 方法未在本地环境中呈现,得到 302 Http 状态响应
- php - 使用 PHP 获取 Android 内部存储文件或文件夹
- python - 文件太大,无法在 Colab 中读取