tegwert
Goto Top

Einzelne Dateien per Batch mit 7z packen

Hallo zusammen!

Ich möchte eine Batch erstellen, welche im "Senden an"-Menü verknüpft ist. Alle an diese Batch gesendeten Dateien sollen dann je einzeln in ein 7z-Archiv gepackt werden.
Bisher habe ich folgende Zeile erstellt:
@FOR %%i IN (%*) DO "C:\Program Files\7-Zip\7z.exe" a -m0=lzma2 %%i.7z  
pause
Leider gibt es hier ein Problem: Wenn ich mehrere Dateien markiere und auf die Datei ziehe, werden immer alle Dateien aus dem Ursprungsordner in ein Archiv gepackt.

Beispiel: Ich habe zum Test folgenden Ordner erstellt:
192042b5ea01468137c7be89b0e5ac85

Wenn ich nun die drei PDF-Dateien markiere und auf die Batch ziehe läuft folgendes ab:
89dbb68a7a74a6c1b183cbd05e882405

Das Ergebnis sieht danach wie folgt aus:
590cd5b57f317c3161e8b607cc9d90cf

Wie muss ich das Script anpassen, damit jede Datei einzeln in ein Archiv gepackt wird?

Gruß
tegwert

Content-ID: 166685

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

Ausgedruckt am: 22.11.2024 um 16:11 Uhr

Skyemugen
Skyemugen 22.05.2011 um 10:12:38 Uhr
Goto Top
Aloha,

hm, es müsste doch eigentlich reichen, wenn du
@FOR %%i IN (%*) DO call :Ablauf "%%i"  
pause
goto :eof

:Ablauf
"C:\Program Files\7-Zip\7z.exe" a -m0=lzma2 "%~1.7z"  
goto :eof 
einsetzt oder eventuell sogar per
:loop
if "%~1"=="" goto :eof  
"C:\Program Files\7-Zip\7z.exe" a -m0=lzma2 "%~1.7z"  
shift
goto :loop

greetz André
bastla
bastla 22.05.2011 um 13:43:46 Uhr
Goto Top
Hallo tegwert!

Versuch es so:
@FOR %%i IN (%*) DO "C:\Program Files\7-Zip\7z.exe" a -m0=lzma2 "%%~i.7z" "%%~i"  
pause
Grüße
bastla
tegwert
tegwert 22.05.2011 um 15:15:22 Uhr
Goto Top
Danke bastla!

Genau was ich suchte.

Gruß
tegwert
Progfreund
Progfreund 23.05.2011 um 13:54:43 Uhr
Goto Top
tegwert, vielleicht magst du den Code / das Vorgehen für das Verlinken im Kontexmenü der Vollständigkeit wegen auch mitteilen?
bastla
bastla 23.05.2011 um 14:19:22 Uhr
Goto Top
Hallo Progfreund!

Eigentlich hatte tegwert ja das "Senden an"-Menü gemeint - und dazu genügt es, den Batch (oder eine Verknüpfung darauf) in den Ordner
"%userprofile%\SendTo"
zu legen ...

Grüße
bastla