AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Werkzeuge Bei Rar.exe Kommandozeile, einen Ordner bei Archivierung ausschließen
Thema durchsuchen
Ansicht
Themen-Optionen

Bei Rar.exe Kommandozeile, einen Ordner bei Archivierung ausschließen

Ein Thema von Alallart · begonnen am 23. Jun 2023 · letzter Beitrag vom 24. Jun 2023
Antwort Antwort
Alallart

Registriert seit: 8. Dez 2015
153 Beiträge
 
#1

Bei Rar.exe Kommandozeile, einen Ordner bei Archivierung ausschließen

  Alt 23. Jun 2023, 12:35
Vermutlich kennen sich einige hier mit Rar.exe (nicht WinRar.exe) und der Nutzung im Befehlszeilenmodus aus. Eigentlich kenne ich mich selbst gut mit dem Tool aus, aber eine Sache klappt bei mir nicht. Das ist das Ausschließen von Ordnern bei der Archivierung.

Mit dem Schalter -x<f> kann man das angegebene Verzeichnis <f> oder die angegebene Datei <f> von der Verarbeitung ausschließen. Bei mir funktioniert das nicht, egal wie ich es auch mache.

Beispiel: nehmen wir an ich habe im Laufwerk C:\ den Ordner Temp. Im Ordner Temp habe ich den Ordner Logs. Ich will den Ordner Temp archivieren, ohne den Ordner Logs. Also gebe ich folgende Zeile ein:
Code:
Rar.exe a Test.rar -x"C:\Temp\Logs" "C:\Temp"
Egal in welcher Variation ich es auch eingebe, mit absoluten Pfaden, mit relativen, mit -r, oder ohne, wie auch immer, der Ordner Logs wird immer mit archiviert. Was mache ich falsch?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.149 Beiträge
 
Delphi 12 Athens
 
#2

AW: Bei Rar.exe Kommandozeile, einen Ordner bei Archivierung ausschließen

  Alt 23. Jun 2023, 12:45
Die rar.exe won wo, oder meinst du doch die vom WinRAR?


Probiere es mal ohne " oder mit " um Alles drumrum.

-xC:\Temp\Logs
-xC:\Temp\Logs\
"-xC:\Temp\Logs"
"-xC:\Temp\Logs\"
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (23. Jun 2023 um 12:47 Uhr)
  Mit Zitat antworten Zitat
Reinhold
(Gast)

n/a Beiträge
 
#3

AW: Bei Rar.exe Kommandozeile, einen Ordner bei Archivierung ausschließen

  Alt 23. Jun 2023, 15:57
Soweit mir bekannt ist, kann Rar.exe nur Dateien ausschließen. Ausschließen von Verzeichnisse ist nicht möglich.

Vielleicht hilft dies:
-xC:\Temp\Logs\*.*
-x"C:\Temp\Logs\*.*"
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#4

AW: Bei Rar.exe Kommandozeile, einen Ordner bei Archivierung ausschließen

  Alt 23. Jun 2023, 17:27
Die WinRAR-Hilfe im Bereich Befehlszeilenmodus -> Schalter -> -x beschreibt diesen Schalter und dessen Verhalten eigentlich ziemlich gut. Laut dieser Beschreibung geht (zumindest bei winrar.exe) auch ein Ausschluss von Verzeichnissen. Die Parameter und Schalter von rar.exe sind ja nahezu deckungsgleich mit denen von winrar.exe.

Grüße
Dalai
  Mit Zitat antworten Zitat
Gargoyl

Registriert seit: 11. Mär 2007
69 Beiträge
 
#5

AW: Bei Rar.exe Kommandozeile, einen Ordner bei Archivierung ausschließen

  Alt 23. Jun 2023, 19:08
laut Hilfe (und ich habs auch ausprobiert) ist folgendes korrekt:

Code:
Rar.exe a Test.rar -x"C:\Temp\Logs\" "C:\Temp"
das hier funktioniert auch
Code:
Rar.exe a Test.rar -x"C:\Temp\Logs\*.*" "C:\Temp"
fügt aber ein leeres Verzeichnis "Temp\Logs" zum Archiv hinzu (kann man mit dem Schalter -ed aber verhindern)
  Mit Zitat antworten Zitat
Alallart

Registriert seit: 8. Dez 2015
153 Beiträge
 
#6

AW: Bei Rar.exe Kommandozeile, einen Ordner bei Archivierung ausschließen

  Alt 24. Jun 2023, 01:43
Ich habe es gerade nochmal ausprobiert, und ich denke ich habe das Problem erkannt. Leider ist die Hilfe in dem Punkt undeutlich. Nicht falsch, aber missverständlich.

Was nicht funktioniert sind relative Pfade, die ich versucht habe umzusetzen. In den Hilfe-Beispielen wird zwar mit relativen Pfaden gearbeitet, aber nicht auf die Besonderheit hingewiesen, bzw. es steht da, man kann es leicht überlesen, wenn man nicht weiß, dass man es beachten muss.
Zitat:
Enthält die Dateimaske Wildcards, wird sie auf alle Dateien im aktuellen Verzeichnis und dessen Unterverzeichnissen angewendet. Ohne Wildcards ist die Dateimaske nicht rekursiv: Die Dateimaske "dateiname" schließt beim Archivieren nur die Datei 'dateiname' im aktuellen Verzeichnis (...) aus
Acha, ohne Wildcards ist die Dateimaske nicht rekursiv. Das ist der wichtige Satz. Zwar ist das im Beispiel richtig vorgeführt, aber wer achtet schon auf den Joker?
Zitat:
rar a -r -x*\temp\ sicherungc c:\*
Anders funktioniert es nicht. Hier werden alle Ordner mit dem Namen temp ausgeschlossen, weil davor ein Sternchen ist: -x*\temp\ . Sind zehn Ordner mit dem Namen temp vorhanden, werden sie alle ausgeschlossen (inkl. Unterordner). Ich habe das Sternchen übersehen, bzw. nicht drauf geachtet, und ging davon aus, dass man Ordner relativ zu dem ausgewählten Ordner angeben kann. Kann man wohl nicht.

Wenn man sich dessen bewusst ist, wird es auch klar, dass relative Pfade nicht funktionieren können. Denn schließlich kann man mehr als nur einen Ordner zum archivieren angeben. Auf welchen Ordner soll sich der relative Pfad beziehen?

Also, sowas ist nicht möcglich:
Code:
Rar.exe a Test.rar -x"\Logs" "C:\Temp"
höchstens sowas
Code:
Rar.exe a Test.rar -x"*\Logs" "C:\Temp"
Was aber geht, ist natürlich das (absolute Pfade):
Code:
Rar.exe a Test.rar -x"C:\Temp\Logs" "C:\Temp"
Das ist der Code aus dem ersten Post. Den habe ich als Beispiel aus dem Kopf geschrieben, ohne den zu überprüfen. Gedanklich ging es mir um relative Pfade, dann habe ich aber ein Beispiel mit einem absoluten Pfad geschrieben.

Ich habe zwar auch paar Beispiele mit absoluten Pfaden ausprobiert, aber andere als in dem Pseudo-Code. Bei meinem Test mit absoluten Pfaden habe ich wohl ein Fehler gemacht, mich dann aber wieder auf relative Pfade konzentriert. An die 98% aller Tests drehten sich bei mir um relative Pfade. Und relative Pfade sind nicht möglich.

Sorry, Problem gelöst.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.149 Beiträge
 
Delphi 12 Athens
 
#7

AW: Bei Rar.exe Kommandozeile, einen Ordner bei Archivierung ausschließen

  Alt 24. Jun 2023, 01:54
Relative geht bestimmt auch,
wenn du sowohl das Exclude, als auch das Include relativ machst.


Außerdem ist relativ nicht gleich relativ,
denn es kommt drauf an relativ zu was es ist.

\Logs ist absolut, zum aktuellen Laufwerk, also C:\Logs
Oder anders gesagt, es ist relativ zum aktuellen Laufwerk, nicht relativ zum aktuellen Verzeichnis.
Wenn, dann meinst du bestimmt Logs oder .\Logs


oder mal ein paar andere Varianten ausprobieren
Rar.exe a Test.rar -x"Logs" "C:\Temp"
cd /d C:\Temp & Rar.exe a Test.rar -x".\Logs" "."
cd /d C:\Temp & Rar.exe a Test.rar -x"Logs" *
...
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (24. Jun 2023 um 01:57 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz