voodoomonkey
Goto Top

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

Content-Key: 118109

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

Printed on: April 26, 2024 at 10:04 o'clock

Mitglied: 77559
77559 Jun 13, 2009 at 17:10:51 (UTC)
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
Member: voodoomonkey
voodoomonkey Jun 13, 2009 at 17:56:58 (UTC)
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 ?
Mitglied: 77559
77559 Jun 13, 2009 at 18:42:43 (UTC)
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
Member: voodoomonkey
voodoomonkey Jun 13, 2009 at 19:01:07 (UTC)
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.
Mitglied: 77559
77559 Jun 13, 2009 at 20:48:27 (UTC)
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