Ordnerinhalt per DragDrop auf Batchdatei mit rar.exe archivieren
Hallo. Such schon lange nach Hilfe zu folgender Frage. Hoffe ihr könnt helfen.
Möchte per Drag&Drop auf eine Batchdatei die ausgewählten Dateien und Ordner in ein Archiv verwandeln. Dabei soll der Name des übergeordneten Ordners als Archivname verwendet werden.
soweit bin ich per Tutorials gekommen:
set path="C:\Program Files (x86)\WinRar\";%path%
WinRAR a -ep1 (hier hinein soll eigentlich der Archivname aber wie ?) %1 (das %1 sollte die Auswahl sein, er packt aber nur die 1te Datei bzw den 1ten Ordner)
Ich wär dankbar wenn mir jemand helfen würde.
mfg
Möchte per Drag&Drop auf eine Batchdatei die ausgewählten Dateien und Ordner in ein Archiv verwandeln. Dabei soll der Name des übergeordneten Ordners als Archivname verwendet werden.
soweit bin ich per Tutorials gekommen:
set path="C:\Program Files (x86)\WinRar\";%path%
WinRAR a -ep1 (hier hinein soll eigentlich der Archivname aber wie ?) %1 (das %1 sollte die Auswahl sein, er packt aber nur die 1te Datei bzw den 1ten Ordner)
Ich wär dankbar wenn mir jemand helfen würde.
mfg
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 118109
Url: https://administrator.de/forum/ordnerinhalt-per-dragdrop-auf-batchdatei-mit-rar-exe-archivieren-118109.html
Ausgedruckt am: 27.04.2025 um 13:04 Uhr
5 Kommentare
Neuester Kommentar

Hallo voodoomonkey,
%1 ist wie die Bezeichnung schon aussagt nur der erste Parameter, %2 der zweite etc. bis %9.
Wenn es mehr sind oder die Anzahl variiert kannst du besser mit Shift arbeiten, das entfernt (nach der Bearbeitung) den ersten Parameter. Solange %1 nicht leer ist springst du zurück und kannst so alles abarbeiten.
%* gibt den kompletten Satz an Parametern zurück.
Gruß
LotPings
%1 ist wie die Bezeichnung schon aussagt nur der erste Parameter, %2 der zweite etc. bis %9.
Wenn es mehr sind oder die Anzahl variiert kannst du besser mit Shift arbeiten, das entfernt (nach der Bearbeitung) den ersten Parameter. Solange %1 nicht leer ist springst du zurück und kannst so alles abarbeiten.
%* gibt den kompletten Satz an Parametern zurück.
Gruß
LotPings

Schau dir mal die Tilde Funktionen an.
Mit %~dp1 bekommst du Laufwerk und Pfad der aktuellen Datei.
Wenn du das in eine Variable packst,
das hinten anhängende \ entfernst und dies per call :sub übergibst
dann kannst in der Subroutine von dem übergebenen Pfad nur den letzten Ordner zurückgeben.
ungetestet
Gruß
LotPings
Mit %~dp1 bekommst du Laufwerk und Pfad der aktuellen Datei.
Wenn du das in eine Variable packst,
set "LwPfad=%~dp1"
das hinten anhängende \ entfernst und dies per call :sub übergibst
Call :StripFolder "%LwPfad:~0,-1%" Ordner
dann kannst in der Subroutine von dem übergebenen Pfad nur den letzten Ordner zurückgeben.
:StripFolderset "%2=%~nx1"goto :eof
ungetestet
Gruß
LotPings

So kann das auch nichts werden 
Hab gerade keine Zeit für weitere Erklärungen. Versuch mal dies :
Wenn die Ausgabe plausibel erscheint, nimm das echo raus, und wenns mit rar klappt (habe ich nicht) kann auch die pause weg.
Gruß
LotPings
Hab gerade keine Zeit für weitere Erklärungen. Versuch mal dies :
@Echo off
set "LwPfad=%~dp1"
Call :StripFolder "%LwPfad:~0,-1%" Ordner
set path="C:\Program Files (x86)\WinRar\";%path%
Echo RAR -IBCK a -ep1 %Ordner%.rar %*
Pause
goto :eof
:StripFolder
set "%2=%~nx1"
Gruß
LotPings