Batch 7Zip-Befehl funktioniert im manuellen Aufruf, per Batch nicht

Klubkola

Lieutenant
Registriert
März 2014
Beiträge
728
Hallo zusammen,

ich möchte euch kurz meine Situation erklären und dann den Code zeigen.
Zur Situation:
Backups der ersten (Windows+Programme) und der zweiten (Eigene Daten+Spiele) werden lokal per kostenlosem Tool Aomei Backupper erstellt.
Ich hatte nun aber die Idee einen Batch zu schreiben, welcher bei Aufruf meinen Ordner mit den wirklich wichtigen Dokumenten in einer *.7z-Datei archiviert und zwar verschlüsselt mit einem Passwort. Dieses passwortgeschützte Archiv mit den wichtigsten Dokumenten soll dann in einer Cloud hochgeladen werden (der Part funktioniert aufgrund des installierten Windows-Programms sowieso automatisch).
Führe ich den "Code" nun manuell im cmd auf, wird alles anstandslos erledigt.
Schreibe ich aber die paar Zeilen als *.bat runter und führe es aus, läuft es auf einen Syntaxfehler hinaus und ich verstehe nicht wieso.

Hier die paar Zeilen:
Code:
C:
cd\
cd "program files\7-zip"
7z.exe a -r -pIrgendeinSicheresKennw0rt! -mhe=on D:\Uploads\doc-sic.7z D:\Dokumente\_WICHTIG\*
pause

Error:
cannot open file
D:\Dokumente\_WICHTIG\*.7z
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.


System ERROR:
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.

Meine Lösungsansätze, die allesamt nicht halfen:
- Batch mit Adminrechten ausgeführt
- Verknüpfung zur *.bat_Datei erzeugt und diese aufgerufen
- Batch im cmd selbst aufgerufen
- Reboot :-)

Kann mir jemand helfen?
Das ist sicherlich eine einfache Geschichte, aber ich verstehe es nicht.

Ich nutze übrigens Windows 10 Pro x64.

Gruß
Klubkola
 
1) Soweit ich es weiß ist "-mhe" ein Switch und wird nicht mit "-mhe=on" angegeben sondern schlicht und ergreifend mit "-mhe"
2) Wildcards müssen (ebenso wie Leerzeichen) quotiert werden (steht z.B. auch hier geschrieben: https://sevenzip.osdn.jp/chm/cmdline/syntax.htm

Deine Batch muss also so aussehen (bei mir funktioniert es zumindest):
Bash:
C:
cd\
cd "program files\7-zip"
7z.exe a -r -pIrgendeinSicheresKennw0rt! -mhe D:\Uploads\doc-sic.7z "D:\Dokumente\_WICHTIG\*"
pause

Wobei ich es ja eher so schreiben würde:
Bash:
"C:\Program files\7-zip\7z.exe" a -r -pIrgendeinSicheresKennw0rt! -mhe D:\Uploads\doc-sic.7z "D:\Dokumente\_WICHTIG\*"
pause
 
  • Gefällt mir
Reaktionen: Klubkola
Das war es.
Es funktioniert!
Vielen Dank :-).
Thread kann geschlossen werden.
 
Zurück
Oben