dackel
Goto Top

Bilddateien in Unterordnern nach Ordnername umbenennen

Hallo zusammen,
ich habe folgende Ordnerstruktur mit vielen Fotos:
Ordner 1
OrdnerA
Files
bild1.jpg
bild2.jpg
bild3.jpg
OrdnerB
Files
bildA.jpg
bild2.jpg
Ordner 2
OrdnerC
Files
bild_.jpg
bild_2.jpg
OrdnerD
Files
bild_A.jpg
bild_B.jpg
Ordner 5
Ordner E
Files
bild1.jpg
bild2.jpg

Dabei sollen alle Ordner1....50 durchlaufen werden und alle Bilddateien nach den Ordnern A, B, C usw. umbenannt und jeweils durchnummeriert werden, z.B. OrdnerA_1.jpg, OrdnerA_2.jpg.
Der Ordner Files soll dabei ignoriert werden.

Bei der Suche bin ich auf mehrere Dateien in Unterordnern umbenennen gestoßen, was meinem Ziel schon am Nächsten kommt.
Könnt Ihr mir ein paar Tipps geben, wie ich das umbauen kann?
Viele Grüße Danke schon mal vorab.

Dackel

Content-Key: 594168

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

Printed on: April 19, 2024 at 01:04 o'clock

Mitglied: 145033
145033 Aug 06, 2020 updated at 10:28:43 (UTC)
Goto Top
Alles für den Dackel, alles für den Club 😁
@echo off &setlocal enabledelayedexpansion
set "quelle=d:\ordner"  
for /d %%a in ("%quelle%\*") do (  
    for /d %%b in ("%%~a\*") do (  
	    set cnt=1
	    for /f "delims=" %%c in ('dir /b /s /a-d "%%~b" 2^>nul') do (  
	        ren "%%c" "%%~nxb_!cnt!%%~xc"  
	        set /a cnt+=1
	    )
    )
)
Member: Dackel
Dackel Aug 06, 2020 at 09:39:54 (UTC)
Goto Top
Hallo Kleiber,
der Dackel sagt Danke für die schnelle Hilfe.
Ich erhalte allerdings die Meldung:" Datei nicht gefunden."
ich hab gerade bei der Anfrage gesehen, dass ich da wohl Mist gemacht habe.
Die Verzeichnisstruktur sieht so aus:

Ordner
--> Ordner 1 --> Ordner A...D --> Files -->BildA...X.jpg
--> Ordner 2 --> Ordner E...G --> Files -->bild1-15.jpg

Die Bilder sollen heißen OrdnerA_1.jpg, OrdnerA_2.jpg oder auch OrdnerE_1.jpg

Sorry, das hab ich falsch dargestellt(Vorschau wäre hilfreich gewesen).
Viele Grüße vom Dackel
Mitglied: 145033
Solution 145033 Aug 06, 2020 updated at 09:48:11 (UTC)
Goto Top
Sorry, das hab ich falsch dargestellt(Vorschau wäre hilfreich gewesen).
Wohl wahr ... Beim nächsten mal vor dem Abschicken die Vorschau benutzen!

S. Anpassung oben.
Member: Dackel
Dackel Aug 06, 2020 at 10:32:08 (UTC)
Goto Top
Danke lieber Kleiber,
das funktioniert super.

Jetzt muss ich ihm nur noch beibringen für die Quelle auch UNC-Pfade zu akzeptieren.

Beste Grüße vom Dackel
Mitglied: 145033
145033 Aug 06, 2020 at 10:35:42 (UTC)
Goto Top
Zitat von @Dackel:
Jetzt muss ich ihm nur noch beibringen für die Quelle auch UNC-Pfade zu akzeptieren.
Geht von Haus aus.
Member: Dackel
Dackel Aug 06, 2020 at 10:42:17 (UTC)
Goto Top
Hallo Kleiber,
hab es gelöst, indem ich die Quelle durch.\ ersetzt habe. Die batch-Datei liegt dann im Hauptordner.

for /d %%a in (".\*") do (

Viele Grüße und vielen Dank vom Dackel
Mitglied: 145033
Solution 145033 Aug 06, 2020 updated at 10:50:37 (UTC)
Goto Top
Zitat von @Dackel:

Hallo Kleiber,
hab es gelöst, indem ich die Quelle durch.\ ersetzt habe. Die batch-Datei liegt dann im Hauptordner.

for /d %%a in (".\*") do (
Achtung das ist nicht zwingend der Skriptordner sondern das aktuelle Verzeichnis und das muss nicht zwingend das Skriptverzeichnis sein! Wenn du willst das zuverlässig der Skriptordner verwendet wird nutze stattdessen
for /d %%a in ("%~dp0*") do (  
Member: Dackel
Dackel Aug 06, 2020 at 12:11:20 (UTC)
Goto Top
Super!
Klappt einwandfrei.
Danke!