7za: Passwort erneut eingeben, wenn es falsch ist

521
Faulwurf

Ich versuche, eine einzelne Datei über ein Bash-Skript mit 7zip aus einem großen Container zu extrahieren.

Befehl: 7za e archive.zip singlefilename

Wenn das Passwort falsch ist, erstellt 7zip eine leere Datei singlefilenameund das Skript wird fortgesetzt, was nicht beabsichtigt ist.

Gibt es eine Umstellung auf das erneute Passieren von Passwörtern, wenn sie mit 7za falsch sind Funktioniert problemlos mit entpacken: /

0
Wenn eine der Antworten Ihr Problem gelöst hat, klicken Sie auf das Häkchen unter der Antwort, um Ihre Frage als gelöst zu markieren. Hydraxan14 vor 7 Jahren 0

2 Antworten auf die Frage

1
Hydraxan14

Beendigungscode

Entspricht der Antwort von Axel, aber (da Sie Bash erwähnt haben) hier ein paar Bash-Codes, um den Einstieg zu erleichtern:

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

Wenn die meisten Programme ohne Fehler beendet werden, setzen sie den Exit-Code auf 0.

Das Testen auf einen Exit-Code ungleich Null ist häufig eine gute Methode, um zu ermitteln, wann ein Programm auf irgendeine Weise versagt hat.

0
Axel Kemper

Immer wenn Sie ein falsches Passwort eingeben, 7zwird ERRORLEVELan die aufrufende Shell eine Nicht-Null zurückgegeben .

Dies kann zum Starten eines erneuten Versuchs in einem .cmdSkript verwendet werden:

: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 

Hinweis:
Die Standalone-Version 7zaist nicht in allen Installationen vorhanden .