【发布时间】:2022-01-12 15:31:58
【问题描述】:
我正在尝试在 powershell 中制作一个快速脚本 这将压缩多个文件夹 (或者文件现在无关紧要,在我的例子中是它的文件夹) 并为每个 zip 文件添加一个随机密码 并将每个 zip 文件的密码导出到 csv。
这是我目前得到的......
$path = "\\path\of\folders"
$source = Get-ChildItem -Path \\path\of\folders -Filter "*?" -Directory
Add-Type -assembly "system.io.compression.filesystem"
Foreach ($s in $source){
$destination = Join-path -path $path -ChildPath "$($s.name).zip"
If(Test-path $destination) {Remove-item $destination}
[io.compression.zipfile]::CreateFromDirectory($s.fullname, $destination)
}
有了这个,我可以压缩主文件夹中的每个文件夹,压缩每个带有其名称的文件。
我管理起来很复杂的地方是如何为每个 zip 文件添加一个随机密码...然后我将添加 | Export-Csv -Path \to\my\path\passwords.csv(除非我对该导出有误)
对此有什么想法吗?
谢谢!
【问题讨论】:
-
我相信 7zip 会比
io.compression更好的解决方案。 -
AFAIK 无法使用 .Net 创建带密码的 zip 文件。你可以看看7zip。其中的commandline version 有一个参数
-p用密码压缩。 -
好吧,我现在已经做到了,但我仍然在为生成随机密码而苦恼……有没有办法?尝试为每个人创建随机生成的密码,然后将其导出到 csv 文件
-
好吧,看来我成功了。将所有内容导出到 csv 文件仍有一些问题,但我有一些解决方法。
标签: powershell file zipfile 7zip