我的目录中有数百个 RAR 文件。目前,我使用 Powershell 2.0 和利用 WinRAR 的 RAR 实用程序解压缩文件的脚本。问题是少数文件最终被加密,这会暂停脚本并需要交互。有没有办法执行以下操作之一:
- 在尝试解压缩之前识别加密文件
- 完全忽略加密文件
- 自动输入错误(或正确)的密码来尝试打开文件,但如果不正确则跳过。
笔记:一些压缩文件仅加密文件内容,而其他压缩文件则加密文件名和文件内容。
相关代码:
$files = Get-ChildItem
foreach($file in $files)
{
if($file.Attributes -eq "Archive")
{
$folder = $file.basename
rar x $file $folder\ -y
}
}
答案1
尝试一下-p-
参数:
-p- Do not query password
编辑:刚刚测试-p-
,提取失败,并出现CRC error in the encrypted file file.ext. Corrupt file or wrong password.
答案2
我已经很久没有用 RAR 做任何事情了。不过我记得它有一个很长的命令行开关列表。“av-”开关应该禁用真实性验证检查,但不确定会产生什么样的输出。因此 rar 命令应该是这样的:
rar x $file $folder\ -y av-
我建议尝试一下,看看会发生什么。