Mit Batch den letzten Ordner eines Pfades aus einer Listendatei ermitteln
ermitteln des Zielordners für -copy-Befehle aus einer Ordnerliste mit unterschiedlichen Verzeichnistiefen
Hallo Forengemeinde!
Nun komme ich also doch noch in die Verlegenheit eine wahrscheinlich einfache Frage hier zu stellen.
Dieses Forum hat mir schon bei seeehr vielen Problemlösungen geholfen, aber an diesem sitz ich nun seit zwei Tagen und weder hier,
noch im sonstigen Googleversum habe ich einen für mich verwertbaren Lösungsansatz gefunden.
Vorweg, ich bin auf eine Batchdatei festgelegt.
Zu meinem Problem:
Ich schreibe hier wie wild an einer Batch, die nichts anderes macht, als sowohl bestimmte Dateien, als auch in einer Listendatei angebbare Ordner in einen (immer dem Datum nach benannten) Backupordner zu sichern und diese auch, bis auf eine angegebene Zahl, wieder zu löschen um nur die aktuellsten X zu behalten.
Soweit so gut, es klappt auch alles wunderbar bis auf die Ordnerliste.
Mein Problem daran ist die Funktionsweise der -copy-Befehle, da diese immer den INHALT des Quellordners ind den Zielordner kopieren und nicht einfach den Quellordner selbst.
bsp:
xcopy "LFW:\xxxxx\yyyyy\zzzz" "LFW:\Backup\zzzz"
Da man aber in der Liste irgendwelche und beliebig viele Ordner angeben können soll, die dann aber trotzdem im Zielverzeichnis\Originalname landen sollen wird das etwas schwierig.
Ich muss also irgendwie den Quellordner aus dem Pfad-String auslesen und ihn als Zielordner in meine FOR-xcopy-Schleife angeben.
LFW:\xxxxx\yyyyy\ZZZZ --> LFW:\Backup\ZZZZ
LFW:\aaa\BBBB --> LFW:\Backup\BBBB
LFW:\hhhh\iiiii\jjjj\kkkk\llll\MMM ---> LFW:\Backup\MMMM
Mein bisheriger Ansatz dreht sich drum irgendwie die "\" im Pfad zu zählen (mit FINDSTR ?) und dann in der FOR-Schleife das Xte (letzte) Token anzugeben.
Und genau in diesem Zählen liegt mein Problem, ich bekomms einfach nicht hin.
Andere Lösungswege sind natürlich auch gern gesehen.
Vielen Dank schonmal
Hallo Forengemeinde!
Nun komme ich also doch noch in die Verlegenheit eine wahrscheinlich einfache Frage hier zu stellen.
Dieses Forum hat mir schon bei seeehr vielen Problemlösungen geholfen, aber an diesem sitz ich nun seit zwei Tagen und weder hier,
noch im sonstigen Googleversum habe ich einen für mich verwertbaren Lösungsansatz gefunden.
Vorweg, ich bin auf eine Batchdatei festgelegt.
Zu meinem Problem:
Ich schreibe hier wie wild an einer Batch, die nichts anderes macht, als sowohl bestimmte Dateien, als auch in einer Listendatei angebbare Ordner in einen (immer dem Datum nach benannten) Backupordner zu sichern und diese auch, bis auf eine angegebene Zahl, wieder zu löschen um nur die aktuellsten X zu behalten.
Soweit so gut, es klappt auch alles wunderbar bis auf die Ordnerliste.
Mein Problem daran ist die Funktionsweise der -copy-Befehle, da diese immer den INHALT des Quellordners ind den Zielordner kopieren und nicht einfach den Quellordner selbst.
bsp:
xcopy "LFW:\xxxxx\yyyyy\zzzz" "LFW:\Backup\zzzz"
Da man aber in der Liste irgendwelche und beliebig viele Ordner angeben können soll, die dann aber trotzdem im Zielverzeichnis\Originalname landen sollen wird das etwas schwierig.
Ich muss also irgendwie den Quellordner aus dem Pfad-String auslesen und ihn als Zielordner in meine FOR-xcopy-Schleife angeben.
LFW:\xxxxx\yyyyy\ZZZZ --> LFW:\Backup\ZZZZ
LFW:\aaa\BBBB --> LFW:\Backup\BBBB
LFW:\hhhh\iiiii\jjjj\kkkk\llll\MMM ---> LFW:\Backup\MMMM
Mein bisheriger Ansatz dreht sich drum irgendwie die "\" im Pfad zu zählen (mit FINDSTR ?) und dann in der FOR-Schleife das Xte (letzte) Token anzugeben.
Und genau in diesem Zählen liegt mein Problem, ich bekomms einfach nicht hin.
Andere Lösungswege sind natürlich auch gern gesehen.
Vielen Dank schonmal
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 110591
Url: https://administrator.de/forum/mit-batch-den-letzten-ordner-eines-pfades-aus-einer-listendatei-ermitteln-110591.html
Ausgedruckt am: 30.04.2025 um 06:04 Uhr
9 Kommentare
Neuester Kommentar
Moin Campari-O,
an dieser Stelle ist nichts Kompliziertes.... mach Dir da nicht so viele Gedanken:
Vollkommen egal, ob es diesen "Pfadstring" gibt oder ob es überhaupt eine Windows-konforme Pfadangabe wäre.
Grüße
Biber
an dieser Stelle ist nichts Kompliziertes.... mach Dir da nicht so viele Gedanken:
>for /f %i in ("LFW:\hhhh\iiiii\jjjj\kkkk\llll\MMM") do @echo LetzterPfadteil: [%~ni]
LetzterPfadteil: [MMM]
Vollkommen egal, ob es diesen "Pfadstring" gibt oder ob es überhaupt eine Windows-konforme Pfadangabe wäre.
Grüße
Biber
Moin Campari-O,
Aber ich denke, ein "Erledigt"-Haken ist zwar noch nicht, aber wäre angebracht.
Schönes Wochenende
Biber
Jetzt noch "demlims=" eingefügt und schon sind die Leerzeichen in den Pfaden auch dabei.
Also, an irgendwelchen "demlims" oder "gremlins" kann es eigentlich nicht liegen, dass es heute läuft...Aber ich denke, ein "Erledigt"-Haken ist zwar noch nicht, aber wäre angebracht.
Schönes Wochenende
Biber