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-ID: 185524

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

Ausgedruckt am: 22.11.2024 um 03:11 Uhr

Biber
Biber 27.05.2012 aktualisiert um 11:52:22 Uhr
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]
trashcan
trashcan 27.05.2012 um 12:03:40 Uhr
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
mak-xxl
mak-xxl 27.05.2012 um 13:20:35 Uhr
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
trashcan
trashcan 27.05.2012 um 13:53:01 Uhr
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
bastla
bastla 27.05.2012 aktualisiert um 14:41:20 Uhr
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
Biber
Biber 27.05.2012 aktualisiert um 16:05:05 Uhr
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]
trashcan
trashcan 27.05.2012 um 16:22:02 Uhr
Goto Top
Vielen Dank bastla,

So hat es geklappt face-smile

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

trashcan
bastla
bastla 27.05.2012 um 19:45:33 Uhr
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]