首页 > 解决方案 > 使用包含双引号的密码提取存档

问题描述

我想用 7zip 提取一个名为 test.rar 的存档,但对我没有任何帮助存档:test.rar 密码(带引号):“。”
我试过了

& "C:\Program Files (x86)\7-Zip\7z.exe" t  -p'"".""' test.rar 
& "C:\Program Files (x86)\7-Zip\7z.exe" t -p""."" test.rar
& "C:\Program Files (x86)\7-Zip\7z.exe" t "-p"."" test.rar
& "C:\Program Files (x86)\7-Zip\7z.exe" t -p'"."' test.rar
& "C:\Program Files (x86)\7-Zip\7z.exe" t -'p"."' test.rar
& "C:\Program Files (x86)\7-Zip\7z.exe" t -p'"".""' test.rar

标签: windowspowershell7zip

解决方案


不幸的是,至少在 PowerShell 7.1 之前,将带有嵌入"字符的参数传递给外部程序,例如从根本上破坏。7z.exe

虽然有变通方法,但更简单的解决方案是通过 stdin提供密码。

Mark Tolonen链接到的帖子显示了这种技术,通过它的输入重定向运算符,但是 PowerShell 不支持cmd.exe<

相反,使用 PowerShell 的管道来提供外部程序通过标准输入接收的数据。

假设逐字密码是"."

'"."' | & "C:\Program Files (x86)\7-Zip\7z.exe" t test.rar 

推荐阅读