【发布时间】:2014-12-14 21:36:43
【问题描述】:
我正在尝试从命令行对受密码保护的存档使用 RAR:
$ rar t spe_05_1.part13.rar
RAR 5.11 Copyright (c) 1993-2014 Alexander Roshal 27 Aug 2014
Trial version Type RAR -? for help
Enter password (will not be echoed) for spe_05_1.part13.rar:
RAR 似乎没有密码开关。它确实提供了一种在存档上设置密码的方法,但我找不到将密码传递给命令以进行测试(t 命令)或提取(x 命令)的方法:
$ rar | grep -i password
hp[password] Encrypt both file data and headers
p[password] Set password
p- Do not query password
我需要自动输入密码(我必须尝试多个密码),所以我尝试使用echo和pipe:
$ echo diespe120 | rar t spe_05_1.part13.rar
RAR 5.11 Copyright (c) 1993-2014 Alexander Roshal 27 Aug 2014
Trial version Type RAR -? for help
Enter password (will not be echoed) for spe_05_1.part13.rar:
不幸的是,这提示了我。
如何在脚本中自动输入 RAR 密码?
PASSWORDS=
for i in {100..150}
do
pw=$(printf "diespe%03d" $i)
PASSWORDS+="$pw "
done
for PASSWORD in $PASSWORDS
do
echo $PASSWORD | rar t spe_05_1.part13.rar
if [ $? -eq 0 ]; then
echo "Password is " $PASSWORD
break
fi
done
【问题讨论】:
-
7z是可编写脚本的,我相信它支持 RAR 格式。 -
你的 rar/unrar 没有选项
-p在命令行上设置密码吗? -
@Cyrus - 不,没有
-p选项(或者它不能按预期工作)。我试了一下,还是提示。我使用的是苹果在 10.8.5 上提供的 RAR -
@jww 您能否详细说明“未按预期工作”的含义?它对我来说很好用(rar 4.00)。
-
@John - “没有按预期工作”意味着在命令行上提示我输入密码(并且密码似乎没有通过
-p选项传递给rar)。