Massendateien umbennen

  • VBScript

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von gabriel-b.

    Massendateien umbennen

    Hallo,

    Ich stehe vor einer Herausforderung.
    Ich habe einen Oder galerie.
    In diesem Order sind lauter Unterorderner drin wie z,B.: 1000, 1001, 1002 usw.
    in diesem Ordner liegt eine jpg Datei im Format: xxxx.jpg, Wobei xxx jeweils für den Ordnername steht.
    Jeder dieser Ordner enthält 2 weiter Unterordner tmb und img.
    Darin sind auch Dateien im Format xxxx.jpg, woberi xxx. für einen jeweiligen Namen steht.

    Ich möchte nun alle Dateien dieses Ordners auf einen Schlag umbennen in neue Dateinamen:

    Alle Bilder des Zahlenordner sollen unberührt bleiben also so 1000.jpg
    Alle Bilder im Ordner tmb sollen nun dieses Format bekommen: 1000-profil1.jpg Das zweite Bild in diesem tmb Ordner: 1000-profil2.jpg usw.
    Alle Bilder im Ordner img sollen nun dieses Format bekommen: or_1000-profil1.jpg Das zweite Bild in diesem img Ordner: or_1000-profil2.jpg

    Nach dem konvertieren sollten die konvertierten Dateien dann alle in den Ordner C:/img kopiert werden.
    Ich habe ein script das mir jemden gemacht im Jahre 2015 gemacht hat das aber leider nicht so richtig funktioniert.

    Um es besser anschaulicher zu machen hier ein Auszug der Ordner Strucktur:

    galerie
    |---Ordner-------->1000
    |-Datei->1000.jpg
    |---Ordner--------->img
    |-Datei-Name.jpg
    |---Ordner--------->tmb
    |-Datei-Name.jpg
    |---Ordner-------->1001
    |-Datei->1000.jpg
    |---Ordner--------->img
    |-Datei-Name.jpg
    |---Ordner--------->tmb
    |-Datei-Name.jpg
    ---> usw.


    Quellcode

    1. Set Shell = WScript.CreateObject("WScript.Shell")
    2. Set Parameter = WScript.Arguments
    3. For i = 0 to Parameter.Count - 1
    4. Set fso = CreateObject("Scripting.FileSystemObject")
    5. Set dir=fso.getfolder(Parameter(i))
    6. For Each folder in dir.SubFolders
    7. For Each subfolder in folder.SubFolders
    8. Set SortedList = CreateObject( "System.Collections.Sortedlist" )
    9. For Each file in subfolder.files
    10. SortedList.add fso.GetFileName(file), file
    11. Next
    12. If SortedList.Count>0 Then
    13. For j = 0 To SortedList.Count - 1
    14. If fso.GetFileName(subfolder)="tmb" Then
    15. fso.CopyFile SortedList.GetByIndex(j), "C:\img\" + fso.GetFileName(folder) + "-profil" + CStr(j+1) + ".jpg"
    16. ElseIf fso.GetFileName(subfolder)="img" Then
    17. fso.CopyFile SortedList.GetByIndex(j), "C:\img\or_" + fso.GetFileName(folder) + "-profil" + CStr(j+1) + ".jpg"
    18. End If
    19. Next
    20. End If
    21. Next
    22. Next
    23. Next


    Es sollte funktionieren wenn cih den Ordner Galerie auf dieses VBS Script ziehe. Leider klappt das nicht


    Hier das Script. Da ich hier ein absoluter Nicht kenner bin bräuchte ich hier Hilfe.

    Danke im voraus.
    Irgendwie komme ich nicht ganz draus was du meinst, aber du hast ja schon das Script.

    ewsg schrieb:


    Leider klappt das nicht

    Was klappt nicht? Bekommst du eine Fehlermeldung oder hält der Script irgendwo einfach an, oder macht es gar nichts? Immer wichtig, nicht nur dein Code zum Vorhaben posten, sondern was daran nicht funktioniert hat(Fehlermeldung usw.). Dann können dir die vllt. auch noch Anfänger (Z.B wie mich) weiter helfen.

    Das nächste mal der Beitrag und der Titel ein "wenig" verständlicher formulieren!

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „gabriel-b“ ()