trashcan
Goto Top

Verschiedene Unterordner anhand einer Liste umbenennen

Hallo,

Ich bin hier im Forum auf folgende Batch Datei gestoßen und würde diese nun gerne für meine Zwecke nutzen. Leider bin ich noch ein ziemlicher Frischling was das Schreiben von Batchdateien betrifft und hoffe daher, dass mir jemand beim Umbasteln helfen kann.

Folgendes habe ich schon angepasst:

set "DATENBANK=c:\Database\DB01.db"  
set "ORDNER=D:\ARCHIVE\"  
cd /D %ORDNER%

for /f "delims=" %%i in ('dir /b /ad') do for /f "tokens=1* delims==" %%a in ('findstr /b /c:"%%i" "%DATENBANK%"') do ren "%%i" "%%b"  
pause

Das ganze funktioniert auch Einwandfrei, wenn die Ordner die ich umbenennen möchte direkt in %ORDNER% sind. Nun ist mein Unterverzeichnis aber Chronologisch aufgebaut:

%ORDNER%\YYYY\YYYY-MM\YYYY-MM-DD - Ordner_der_umbenannt_werden_soll

wobei YYYY für Jahr MM Für Monat und DD für Tag steht also z.B.:

C:\Archive\2005\2005-06\2005-06-03 - Backup Projekt XY

Die Textdatei ist wie Folgt aufgebaut:

YYYY-MM-DD - Ordner_der_umbenannt_werden_soll=Ordner_der_umbenannt_werden_soll

Mein Problem ist nun: Sobald ich eine Möglichkeit gefunden habe, auch die Unterordner zu erfassen, nennt mir die Batch ersteinmal die Zwischenordner YYYY und YYYY-MM um.

An die Möglichkeit einfach die Ordner um den Datums String zu kürzen habe ich auch schon gedacht, nur haben einige Ordner vereinzelnd noch einen Zusatz z.B.: 2005-06-03 - [Fertig] - Backup Projekt XY

Weiß jemand Rat?

Gruß

trashcan

Content-Key: 185524

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

Printed on: April 24, 2024 at 18:04 o'clock

Member: Biber
Biber May 27, 2012 updated at 09:52:22 (UTC)
Goto Top
[OT]
Moin trashcan,

Willkommen im Forum.
Bitte ignoriere meinen OT-Kommentar - erklär ich dir bei Bedarf per PN.
Zitat von @trashcan:
Verschiedene Unterordner anhand einer Liste Umbennen
Das ganze funktioniert auch Einwandfrei, wenn die Ordner die ich umbennen möchte ...
...eine Möglichkeit gefunden habe, auch die Unterordner zu erfassen, bennent mir die Batch..
Set /a rgc+=3
#827

Grüße
Biber
P.S. Auf dein eigentliches Problem werfe ich auch einen Blick nach dem Frühstück.
[/OT]
Member: trashcan
trashcan May 27, 2012 at 10:03:40 (UTC)
Goto Top
Hallo Biber,

vielen Dank schon einmal im Voraus. Denke [OT] habe ich verstanden face-wink - "en" war schon immer eine Schwäche von mir face-smile
Member: mak-xxl
mak-xxl May 27, 2012 at 11:20:35 (UTC)
Goto Top
Moin trashcan,

falls der Biber zuviel gefrühstückt hat und jetzt einen dicken Kullerbauch pflegt, vorab eine Hilfestellung:

Die Verzeichnisse werden vom dir-Befehl angeliefert - wenn Du diesem den Parameter '/s' spendierst, macht er das auch für Unterverzeichnisse. Wenn Du vor den ren-Befehl noch ein echo setzt, kannst Du erstmal anschauen, was denn wäre, wenn ...

for /f "delims=" %%i in ('dir /b /s /ad') do for /f "tokens=1* delims==" %%a in ('findstr /b /c:"%%i" "%DATENBANK%"') do @echo ren "%%i" "%%b" 

Frohe Pfingsten und freundliche Grüße von der Insel - Mario
Member: trashcan
trashcan May 27, 2012 at 11:53:01 (UTC)
Goto Top
Hallo Mario,

Dank dir für den Tip. Leider macht er mir mit dem Zusatz von /s rein garnichts. Wenn ich die Batch ohne /s in meinem Hauptverzeichnis starte nennt er mir nur wieder die Jahres Ordner um - jeweils nach dem ersten Beitrag, der mit entsprechendem Jahres Tag in der Datenbank gefunden wird.

Ich bräuchte also einen Befehl, der YYYY\YYYY-MM überspringt, bzw. die Batch gleich in jedem YYYY-MM startet.

Gruß

trashcan
Member: bastla
bastla May 27, 2012 updated at 12:41:20 (UTC)
Goto Top
Hallo trashcan!

Deiner Beschreibung nach würde sich ein "findstr /e" besser eigenen als die Variante mit "/b" (das "/s" beim "dir" brauchst Du aber trotzdem ...
Als Alternative könntest Du, anstatt alle Ordner durchzugehen, einfach alle "Datenbank"-Einträge abarbeiten (da so ganz gezielt nur die passenden Ordner in der jeweiligen Ebene gefunden werden) - ungetestet etwa:
for /f "usebackq tokens=1* delims==" %%i in ("%DATENBANK%") do for /f "delims=" %%o in ('dir /s/b/ad "%ORDNER%\%%i"') do echo ren "%%o" "%%j"
... und übrigens: Die Zeile 3 ist entbehrlich, wenn Du (in der einen oder anderen Version) "dir /s/b" verwendest, da Du so ohnehin einen kompletten Pfad erhältst ...

Grüße
bastla
Member: Biber
Biber May 27, 2012 updated at 14:05:05 (UTC)
Goto Top
[OTii]
Moin mak-xxl,

Zitat von @mak-xxl:
falls der Biber zuviel gefrühstückt hat und jetzt einen dicken Kullerbauch pflegt...
Hrrmmhhhh.... irgendwie wurde mein alter Avatar ein büschen unvorteilhaft auf ein quadratisches Format gestaucht...
-> nur deshalb bin ich da VOLLKOMMEN VERZERRT so stark in die Breite gegangen *grmphhh*

Ich habe jetzt mal ein eher an Porträtaufnahmen angelehntes Bildchen hochgeladen.
Allerdings - verglichen mit der Mona Lisa wirke ich doch noch etwas knuffig.

Bezogen auf das TO-Problem: sollte schon hinreichend beantwortet sein.

Ebenfalls Vrohe Vinxten auf die Insel Mario
Biber
[/OTii]
Member: trashcan
trashcan May 27, 2012 at 14:22:02 (UTC)
Goto Top
Vielen Dank bastla,

So hat es geklappt face-smile

Viele Grüße und euch allen noch schöne Pfingsten.

trashcan
Member: bastla
bastla May 27, 2012 at 17:45:33 (UTC)
Goto Top
[OT] Hallo Biber!

Da hab ich es mit meinem Bildchen wesentlich leichter (die Tendenz zur "Breite unterhalb der Gürtellinie" hattest Du ja seinerzeit schon konstatiert face-wink) ...

Grüße
bastla
[/OT]