Dateien umbenennen

Dieses Thema im Forum "Scripting und Automatisierung" wurde erstellt von Apfel-Fee, 03.03.2005.

  1. Apfel-Fee

    Apfel-Fee Thread Starter MacUser Mitglied

    Beiträge:
    6
    Zustimmungen:
    0
    MacUser seit:
    03.03.2005
    Hey,
    ich habe ein Problem und zwar wollte ich mit AppleScript Folgendes automatisieren:

    Wenn Dateinen in einen bestimmten Ordner geschoben werden, wird der Anwender gefragt, wo die Dateien hingeschoben werden sollen. Aus dem Namen des Zielordners und einer fortlaufenden Nummer, wird ein neuer Name generiert und die Dateien werden nacheinander umbenannt.

    Das hat soweit ganz gut geklappt. Aber für den Fall, dass nun in den gleichen Ordner nachträglich noch mehr Dateien verschoben werden sollen, wollte ich AppleScript dazu bringen nachzusehen, ob schon etwas in dem Zielordner ist und wenn ja, die neuen Dateien fortlaufend dazu umbenennt.
    Ich poste hier noch den Teil meines Scripts mit dieser UmbenennungsSchleife, denn irgendwie ist ein Bug drin.

    -- Erstellung des Dateinamen ohne Bildnummer
    set basic_name to ep_number & "_" & sz_number & "_" & ein_number
    -- Erstellen einer Liste alles Dateien im Zielordner
    set pic_List to list folder (target_folder_bild as alias) without invisibles

    -- Zählen der Dateien in der Liste des Zielordners
    set ANZAHL to the (count of pic_List) as number

    -- Anfangszahl für Durchnummerierung festlegen
    set anfangs_Zahl to ANZAHL + 1

    -- Erstellen einer Liste aller Dateien im temp-Ordner
    set temp_List to list folder (temp_folder as alias) without invisibles

    -- Zählen der Dateien in der Liste des Temp-Ordners
    set temp_ANZAHL to the (count of temp_List) as number

    -- Aufruf der Rename-Funktion
    rename_files(ANZAHL, anfangs_Zahl, temp_ANZAHL, basic_name, target_folder_bild, temp_folder)


    on rename_files(ANZAHL, anfangs_Zahl, temp_ANZAHL, basic_name, target_folder_bild, temp_folder)
    tell application "Finder"
    repeat with counter from anfangs_Zahl to (anfangs_Zahl + temp_ANZAHL - 1)
    if counter < "10" then
    set new_name to basic_name & "_00" & counter & ".jpg"
    else if counter < "100" then
    set new_name to basic_name & "_0" & counter & ".jpg"
    else if counter < "1000" then
    set new_name to basic_name & "_" & counter & ".jpg"

    -- Ausgeben einer Fehlermeldung bei mehr als 999 Dateien
    else
    display dialog "ERROR!
    Bei der Benamung ist ein schwerer Ausnahmefehler aufgetreten. Dieses Programm kann nicht mit Zahlen über 999 dealen." buttons {"Scheiße!"} default button 1
    end if
    try

    -- Ersetzen des ursprünglichen Dateinamen durch neuen Dateinamen
    set name of item (counter - anfangs_Zahl + 1) in folder temp_folder to new_name
    on error errorMsg
    display dialog errorMsg
    end try
    end repeat
    end tell
    end rename_files
    Code:
    
    Ich wäre dankbar, wenn mir jemand sagen könnte, was daran falsch ist oder wenn mir jemand ein neues Script für diese Funktion schreiben könnte.  Das Problem bei dem obenstehenden Script ist, dass es nur beim ersten Mal fehlerfrei arbeitet. Läßt man die umbenannten Dateien in dem Ordner und versucht sie nochmal umzubenennen, benennt er nur jede zweite Datei mit jeder zweiten Ziffer.
    
    Vielen, vielen Dank.
    Eure Apfel-Fee.
     
  2. avalon

    avalon MacUser Mitglied

    Beiträge:
    24.796
    Zustimmungen:
    1.866
    MacUser seit:
    19.12.2003
    Ohne es gelesen zu haben, weil für mich nicht nachvollziehbar:

    Es gibt Renamer4Mac, damit benenne ich Dateien um.

    PS: Räder sind auch schon erfunden.. ;)
     
  3. Lynhirr

    Lynhirr Gast

    Schau an! Wo gibt es die zu kaufen? :D

    SCNR ;)
     
  4. Apfel-Fee

    Apfel-Fee Thread Starter MacUser Mitglied

    Beiträge:
    6
    Zustimmungen:
    0
    MacUser seit:
    03.03.2005
    Danke für diese inspirierende Antwort!

    Das hat sich aber gerade erledigt. Es lag daran, dass die erste Datei im Ordner korrekt umbenannt wurde und danach der Inhalt des Ordners nach Namen neu sortiert wurde und damit die Reihenfolge gestört wurde.

    Problem gelöst. Vielen Dank!
     
Die Seite wird geladen...