【问题标题】:Pipe or echo password into RAR command?管道或回显密码到 RAR 命令?
【发布时间】: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

我需要自动输入密码(我必须尝试多个密码),所以我尝试使用echopipe

$ 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)。

标签: macos bash shell rar


【解决方案1】:

如何在脚本中自动输入 RAR 密码?

要实现自动化,请不要使用管道。请改用 shell 变量。试试:

for PASSWORD in $PASSWORDS
do
    rar t -p"$PASSWORD" spe_05_1.part13.rar
    if [ $? -eq 0 ]; then
        echo "Password is '$PASSWORD'"
        break
    fi
done

【讨论】:

  • 谢谢约翰。我无法让 RAR 接受 -p 的密码。但是我可以按照 Tripleee 的建议使用来自 MacPorts 的7z 来做到这一点。
猜你喜欢
  • 2017-06-03
  • 2022-08-05
  • 1970-01-01
  • 1970-01-01
  • 2010-09-05
  • 2020-03-11
  • 2013-09-13
  • 2012-03-19
  • 1970-01-01
相关资源
最近更新 更多