zeddler0
Goto Top

7-zip winrar, kommandozeile, passwörter mit sonderzeichen

hallo,

ich versuche ein archiv unter windows automatisiert zu entpacken.
leider stößst die kommadozeile bzw. die von mir verwendeten programme
winrar & 7-zip an ihre grenzen

ich habe eine textdatei mit dem passwort,
welche fehlerfrei in eine variable gespeichert wird
set /p xPW=<"textfile.txt"  

das passwort hat leerzeichen und anfürungszeichen:
FMNB"+Mbcd Hdefghi+"Sjk_Rlmnop  

der hauptbefehl ist:
WinRAR.exe x -p"%xPW%" "%~1%"  
bzw.
7z.exe 	x -p"%xPW%" "%~1%"  


jetzt die frage:
wie kann ich das passwort fehlerfrei an das entpackprogramm übergeben?

ich vermute mal die kommadozeile wird mir die anfürungszeichen immer wegkonvertieren,
wenn ich keine möglichkeit habe das zu unterbinden oder zu ändern.

als alternative wäre vielleicht powershell, oder VBS.
bei VBS müsste man warscheinlich die 7-zip.dll/RarExt.dll verwenden.

das müsste aber so simpel wie möglich gehalten werden.


vielen dank.

Content-ID: 625194

Url: https://administrator.de/contentid/625194

Ausgedruckt am: 18.11.2024 um 01:11 Uhr

NordicMike
NordicMike 24.11.2020 um 09:28:07 Uhr
Goto Top
Das kann das Programm interpretieren wie es will bzw wie es der Programmierer dieses Programmes vorgesehen hat. Wenn du Glück hast, kannst du es mit einem Maskierungszeichen davor senden. Auch kann man es versuchen als Unicode.

Ansonsten kannst du auch dafür sorgen, dass die Passwortgenerierung bestimmte Zeichen auslässt, sodass du gar nicht in dieses Problem gerätst.
zeddler0
zeddler0 24.11.2020 um 12:27:15 Uhr
Goto Top
ich habe das problem das ich nicht jedes passwort von hand bearbeiten kann um Maskierungszeichen einzufügen.

an ende ist es ein script, was ein passwort ausließst und ein programm übergibt, voll automatisch.
mir ist das passwort (theoretisch) unbekannt.

witzig ist auch der gedanke gerade, was ist wenn ein Maskierungszeichen teil des passwortes ist,
dann wird auch dieses weginterprätiert.
daran hatte ich noch garnicht gedacht.

ich sehe hier die programm-programierer in der plicht eine 'passwort.txt' eingabe zu unterstützen.

als umweg habe ich mir halt powershell bzw. VBS gedacht, die mit dieser eingabe besonnders umgehen könnten.
zeddler0
Lösung zeddler0 30.07.2022 um 11:53:18 Uhr
Goto Top
ich möchte nur den beitrag abschließen,
meine aktuelle lösung sieht so aus:

7-Zip
@"%~dp0BIN\7z.exe" x -y "%~1" < "%~1.txt"  

WinRAR:
@echo off
if exist "%ProgramFiles(x86)%\WinRAR\WinRAR.exe" 	(set "xWRARDir=%ProgramFiles(x86)%\WinRAR")  
if exist "%ProgramFiles%\WinRAR\WinRAR.exe" 		(set "xWRARDir=%ProgramFiles%\WinRAR")  

"%xWRARDir%\UnRAR.exe" x -p "%~1" < "%~1.txt"  

aktuell bin ich zu 99,9x% der fälle zu keiner sonderzeichenkollision gekommen,
an der ich mich noch erinnern könnte... :P

diese dateien aus dem internet befinden sich bei mir im downloadordner,
der standardgemäß eine dateisystemverschlüsselung trägt.
der download wird erst nach einer gefahrenanalyse entschlüsselt oder gelöscht.