voodoomonkey

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
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

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

77559
77559 13.06.2009 um 19:10:51 Uhr
Goto Top
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
voodoomonkey
voodoomonkey 13.06.2009 um 19:56:58 Uhr
Goto Top
Danke. Das war der Teil mit dem %1. Wie gebe ich nun an, dass der Name des Ordners in dem ich bin der Name der RAR wird ?
77559
77559 13.06.2009 um 20:42:43 Uhr
Goto Top
Schau dir mal die Tilde Funktionen an.

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
voodoomonkey
voodoomonkey 13.06.2009 um 21:01:07 Uhr
Goto Top
Hmm er macht bei folgendem script nun gar nix mehr

set "LwPfad=%~dp1"
Call :StripFolder "%LwPfad:~0,-1%" Ordner
:StripFolder
set "%2=%~nx1"
goto :eof
set path="C:\Program Files (x86)\WinRar\";%path%
RAR -IBCK a -ep1 %2.rar %*

------> %2 wär dann das Ergebnis von Stripfolder denk ich mal.
77559
77559 13.06.2009 um 22:48:27 Uhr
Goto Top
So kann das auch nichts werden face-wink

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"  
Wenn die Ausgabe plausibel erscheint, nimm das echo raus, und wenns mit rar klappt (habe ich nicht) kann auch die pause weg.

Gruß
LotPings