首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Powershell到7z加密文件夹

Powershell到7z加密文件夹
EN

Stack Overflow用户
提问于 2015-08-14 01:03:12
回答 2查看 5.3K关注 0票数 1

我是从Powershell开始的,到目前为止似乎很有趣。今晚,我将编写一个用7z压缩文件夹并将加密添加到新的.7z文件的脚本(见下文)。

代码语言:javascript
运行
复制
if (-not (test-path "$env:ProgramFiles\7-Zip\7z.exe")) {throw "$env:ProgramFiles\7-Zip\7z.exe needed"} 
set-alias sz "$env:ProgramFiles\7-Zip\7z.exe"  

$timestamp = get-date -f yyyyMMdd
$Source = "D:\dbbackup\$timestamp-0300" 
$Target = "D:\backup\$timestamp.7z"

sz a -mx=9 $Target $Source -p1234

最终,我需要从一个文件夹中创建一个加密的7z文件,该文件夹每天晚上都在使用yyyyMMdd进行更改,然后再加上一个常量(在本例中,是yyyMMd-0300)。使用上面的脚本,我可以运行它,并将创建一个新的7z文件。然而,密码1234将不适用。根本没有加密。

如果我省略了$timestamp,并且只使用$source$target运行7z,我可以成功地创建一个加密的7z文件。

有人能告诉我我做错了什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-14 06:01:28

我会尝试以下几种方法

代码语言:javascript
运行
复制
if (-not (test-path "$env:ProgramFiles\7-Zip\7z.exe")) {throw "$env:ProgramFiles\7-Zip\7z.exe needed"} 
$sz = ("$env:ProgramFiles\7-Zip\7z.exe") 

$timestamp = get-date -f yyyyMMdd
$Source = "D:\dbbackup\$timestamp-0300" 
$Target = "D:\backup\$timestamp.7z"

Start-Process $sz -argumentList "a", "-mx=9", "$Target", "$Source", "-p1234" -Wait
票数 3
EN

Stack Overflow用户

发布于 2018-03-05 17:18:52

仅仅因为我需要花费一些时间来传递具有类似空格的目录,从而解决了这个问题,下面是如何加密.bak文件并将加密的存档发送到共享位置的示例:

代码语言:javascript
运行
复制
if (-not (test-path "$env:ProgramFiles\7-Zip\7z.exe")) {throw "$env:ProgramFiles\7-Zip\7z.exe needed"} 
set-alias sz "$env:ProgramFiles\7-Zip\7z.exe"  

$timestamp = get-date -f yyyy-MM-dd
$Source = "C:\backups ang logs\*.bak"
$Target = "\\192.168.12.345\d\DropBoxFolder\My Daily Backups $timestamp.7z"

sz a -mx=0 -pStrongPassword -mhe=on -m0=lzma2 $Target $Source | Out-Null

m0=lzma2是压缩算法(请参阅更多)

-mx=0 for LZMA2意味着64 be字典、32个快速字节、HC4匹配器和BCJ过滤器--我在这里使用过它,因为大多数原生.bak文件已经被压缩了。

mhe=on启用头加密(这里更多的7z方法)

Out-Null增强输出,而不是将其发送到管道下或显示它(更多的这里)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32000819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档