7za: если пароль введен неверно

369
Faulwurf

Я пытаюсь извлечь один файл с помощью сценария bash с 7zip из большого контейнера.

Команда: 7za e archive.zip singlefilename

Если пароль неверный, 7zip создает пустой файл с именем singlefilenameи сценарий продолжается, что не предназначено.

Есть ли какой-либо переключатель для повторного запроса паролей, если они не так с 7za? Работает без проблем с распаковкой: /

0
Если один из ответов решил вашу проблему, пожалуйста, нажмите на галочку под ответом, чтобы пометить ваш вопрос как решенный. Hydraxan14 7 лет назад 0

2 ответа на вопрос

1
Hydraxan14

Код выхода

То же, что и ответ Акселя, но (поскольку вы упомянули bash), вот код bash, с которого можно начать:

#!/bin/bash EXIT=1 while [ ! $EXIT -eq 0 ] do # 7-zip stuff EXIT=$? done 

Когда большинство программ завершают работу без ошибок, они устанавливают код выхода на 0.

Тестирование на ненулевой код завершения часто является хорошим способом определить, когда программа каким-то образом потерпела неудачу.

0
Axel Kemper

Всякий раз, когда вы вводите неправильный пароль, вы 7zполучите ненулевое значение ERRORLEVELдля вызывающей оболочки.

Это можно использовать для запуска повторной попытки следующим образом в .cmdскрипте:

:again :: -y allows overwrite of existing file 7z.exe e -y xxx.zip "xxx.txt" if errorlevel 1 goto try_again echo. got it! goto xit  :try_again echo. sorry! Try again ... goto again  :xit 

Примечание
. Автономная версия 7zaприсутствует не во всех установках .

Похожие вопросы