Batch-Datei - Umbenennen von Dateien basierend auf dem Namen des übergeordneten Elements und (sub -) Ordner(s) name

Hier ist der code:

for /r %%a in (*.jpg, *.png, *.bmp, *.exe) do (
  for /d %%d in (%CD%) do (
    set newname=%%~nd%~x1
    ren "%%~a" "!newname!%%~Xa"
    echo media file in %%~fa renamed to "!newname!%%~Xa"
  )
)

Das Hauptproblem ist, dass die Dateien in den Unterordnern landen mit Namen wie das übergeordnete Verzeichnis Namen ich führen Sie die bat-Datei aus.

Beispiel dafür, was passiert:

C:\parent\name.jpg renamed to C:\parent\parent.jpg
C:\parent\child\name.jpg renamed to C:\parent\child\parent.jpg
C:\parent\child1\child2\name.jpg renamed to C:\parent\child1\child2\parent.jpg

Brauche ich:

C:\parent\1.jpg rename to C:\parent\parent.jpg
C:\parent\child\1.jpg rename to C:\parent\child\child.jpg
C:\parent\child1\child2\name.jpg renamed to C:\parent\child1\child2\child2.jpg

Hilfe?

InformationsquelleAutor fat_mike | 2013-10-12
Schreibe einen Kommentar