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-Key: 166685

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

Printed on: April 16, 2024 at 23:04 o'clock

Member: Skyemugen
Skyemugen May 22, 2011 at 08:12:38 (UTC)
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é
Member: bastla
bastla May 22, 2011 at 11:43:46 (UTC)
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
Member: tegwert
tegwert May 22, 2011 at 13:15:22 (UTC)
Goto Top
Danke bastla!

Genau was ich suchte.

Gruß
tegwert
Member: Progfreund
Progfreund May 23, 2011 at 11:54:43 (UTC)
Goto Top
tegwert, vielleicht magst du den Code / das Vorgehen für das Verlinken im Kontexmenü der Vollständigkeit wegen auch mitteilen?
Member: bastla
bastla May 23, 2011 at 12:19:22 (UTC)
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