timlagezz
Goto Top

Ordnername ist gleich Dateiname renamer

brauche hilfe beim erstellen einer bat

hallo leider kenn ich mich mit den bat befehlen nicht so aus. ich brauche aber eine bat da es sonst sehr lange dauern würde, alles per hand umzuändern

Situation:

ich habe einen ordner in denen ca 100 ordner sind,
in jedem dieser 100 ordnern befindet sich eine datei.
und genau diese datei soll den namen des ordners (in dem sie liegt) erhalten.

(ich hoffe man versteht was ich brauch?)

Bsp.:

Ordnerxy\001\abc.bmp
Ordnerxy\002\def.bmp
Ordnerxy\003\ghi.bmp

wird zu:

Ordnerxy\001\001.bmp
Ordnerxy\002\002.bmp
Ordnerxy\003\003.bmp


sowas müsste doch mit einer bat datei zu machen sein?
ich habe schon mehrere rename tools probiert aber keinen erfolg gehabt.
ich hoffe mir kann jemand helfen
Kommentar vom Moderator Biber am 31.03.2010 um 16:24:25 Uhr
Irgendwie habe ich den Eindruck, einige Fragesteller versuchen gewissen running gag countern weiträumig aus dem Wege zu gehen, hmm?
Is' jezz' nur so'n Verdacht....

Content-ID: 139610

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

Ausgedruckt am: 22.11.2024 um 15:11 Uhr

bastla
bastla 31.03.2010 um 14:51:43 Uhr
Goto Top
Hallo timlagezz und willkommen im Forum!

Wenn es tatsächlich in jedem Ordner genau eine Datei gibt, dann etwa so:
for /d %i in ("D:\Ordnerxy\*.*") do @for %a in ("%i\*.bmp") do @echo ren "%~fa" "%~nxi%~xa"
Die Zeile ist zum Einsatz direkt im CMD-Fenster und als Test gedacht, da - solange das "echo" vor dem "ren" steht - nur der Befehl für das Umbenennen angezeigt wird.

Grüße
bastla
Edi.Pfisterer
Edi.Pfisterer 31.03.2010 um 15:21:38 Uhr
Goto Top
Hallo timlagezz und auch Willkommen von mir

Hier noch die Entsprechung in vbs... (sollte auch funktionieren, wenn mehrere Files in den Ordnern sind...)
(falls das mal jemand sucht...)

woissndes = "c:\Ordnerxy"  
neuesformat = ".bmp"  
Set objFSO = CreateObject("Scripting.FileSystemObject")  
Set objFolder = objFSO.GetFolder(woissndes)
Set colSubfolders = objFolder.Subfolders
For Each objSubfolder in colSubfolders
 '   Wscript.Echo objSubfolder.Name  
    zaehler = -1
    For Each File in objSubfolder.Files
            if objSubfolder.Files.Count = 1 then
               zusatz = ""  
            else
                zaehler = zaehler+1
                zusatz = "_" & zaehler  
            end if
          '   Wscript.Echo File.Name  
            quelle = woissndes & "\" & objSubfolder.Name & "\"  
            objFSO.MoveFile quelle & File.Name, quelle & objSubfolder.Name & zusatz & neuesformat
            filezaehler = filezaehler+1
    Next
ordnerzaehler = ordnerzaehler+1
Next
Wscript.Echo filezaehler & " Dateien in " & ordnerzaehler & " Ordnern umbenannt, Honey!"  

btw: Du bist knapp am Wort (jetzt schreib ichs) UMBENENNEN oder noch besser UMBENNEN vorbeigeschrammt face-wink
aber bei dieser Auflage sollte man einen entsprechenden Eintrag im Index nicht ungenützt verstreichen lassen...
@Biber: auf gehts! face-wink

lg
Edi,
der Mann, der Ferien sehr zu schätzen weiss UND sich über die entsprechenden Wünsche in der letzten Woche von Bastla noch mehr freute face-wink Danke!
timlagezz
timlagezz 31.03.2010 um 15:53:51 Uhr
Goto Top
hat beides super funktioniert vielen dank !!