7za: Reask password if wrong

0

Estou tentando extrair um único arquivo por meio de um script bash com 7zip de um grande recipiente.

Comando: 7za e archive.zip singlefilename

Se a senha estiver errada, o 7zip cria um arquivo vazio chamado singlefilename e o script continua, o que não é pretendido.

Existe alguma opção para descobrir senhas se elas estiverem erradas com o 7za? Funciona sem problemas com o unzip: /

    
por Faulwurf 03.01.2017 / 20:02

2 respostas

1

Código de Saída

O mesmo que a resposta do Axel , mas (desde que você mencionou o bash) aqui está um código bash para você começar:

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

Quando a maioria dos programas termina sem erros, eles definem o código de saída como 0 .

O teste de um código de saída diferente de zero costuma ser uma boa maneira de detectar quando um programa falha de alguma forma.

    
por 04.01.2017 / 00:09
0

Sempre que você digitar uma senha errada, 7z retornará umERRORLEVEL diferente de zero ao shell de chamada.

Isso pode ser usado para iniciar uma nova tentativa da seguinte maneira em um script .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

Nota:
A versão autônoma 7za não está presente em todas as instalações .

    
por 03.01.2017 / 23:49

Tags