Dateien kopieren und nummerieren.

Dieses Thema im Forum "Scripting und Automatisierung" wurde erstellt von infach, 23.03.2007.

  1. infach

    infach Thread Starter MacUser Mitglied

    Beiträge:
    178
    Zustimmungen:
    1
    Mitglied seit:
    30.11.2005
    Hallo,
    ich möchte alle Dateien aus allen Unterordnern eines Ordners in EINEN neuen Ordner kopieren und die Dateien dabei umbenennen. Und zwar einfach in Datei0001.JPG - wobei die Zahl halt durchzählen soll.
    Für das kopieren der Dateien hab ich mir schon was zusammen gecopied&pasted, aber der umbenenn/zähl Teil bereitet mir noch sorgen. Kann mir jemand helfen?
    Code:
    property source_folder : "mac:path:to:enclosing:folder:of:original:data"
    property target_folder : "mac:path:to:destination:folder"
    
    tell application "Finder"
    	set thedata to entire contents of folder source_folder
    	repeat with aItem in thedata
    		if class of aItem is not folder then
    			copy aItem to folder target_folder
    		end if
    	end repeat
    end tell
    Tausend Dank!!! :cake:
     
  2. little_pixel

    little_pixel MacUser Mitglied

    Beiträge:
    3.948
    Zustimmungen:
    971
    Mitglied seit:
    06.06.2006
    Hallo,

    ich habe Dir schnell eine Beispielroutine getippt:

    Code:
    tell application "Finder"
    	set meinOrdner to "MacBook:TEST:" as string
    	set sel to every file of folder meinOrdner
    	
    	set meinName to "MeinBild-"
    	set meinZaehler to 0
    	
    	repeat with naechsteDatei in sel
    		set meinZaehler to meinZaehler + 1
    		set name of naechsteDatei to (meinName & meinZaehler & ".jpg") as string
    		
    	end repeat
    	
    end tell
    
    Setze die betreffenden Stellen bei Dir ein.

    Viel Erfolg!
     
  3. chebfarid

    chebfarid MacUser Mitglied

    Beiträge:
    894
    Zustimmungen:
    75
    Mitglied seit:
    05.10.2005
    Ciao Infach,
    der erste Teil Deines Scripts steht ja schon, die einzige Zeile die Du ändern mußt ist diese:
    Code:
    copy aItem to folder target_folder
    Der Befehl copy funktioniert im Finder noch nicht, und in AS wird er manchmal alternativ zu set zur Definition von Variablen benutzt. Nimm stattdessen duplicate:
    Code:
    duplicate aItem to folder target_folder
    Das Umbenennen kannst Du entweder im gleichen Repeatloop vornehmen oder in einem zweiten Schritt, am Ende des Kopiervorgangs. Zeitlich nimmt sich das nichts, aber persönlich halte ich den getrennten Nominierungsblock für programmiertechnisch übersichtlicher, z.B:
    PHP:
    tell application "Finder"
        
    set newFiles to entire contents of target_folder
        set c to count of newFiles
        repeat with i from 1 to c
            set aFile to item i of target_folder
            
    if 10 then
                set name of aFile to 
    ("Datei000" ".JPG")
            else if 
    >= 10 and 100 then
                set name of aFile to 
    ("Datei00" ".JPG")
            else if 
    >= 100 and 1000 then
                set name of aFile to 
    ("Datei0" ".JPG")
            else
                
    set name of aFile to ("Datei" ".JPG")
            
    end if
        
    end repeat
    end tell
    Frohes scripten
    Farid
     
  4. infach

    infach Thread Starter MacUser Mitglied

    Beiträge:
    178
    Zustimmungen:
    1
    Mitglied seit:
    30.11.2005
    Danke für die vielen Antworten! (Wo ist der neue Dank-Button nochmal?) Ich werde das morgen alles testen.

    @chebfarid
    Wenn ich erst alles in den Zielordner verschiebe, kann es mir passieren, dass zwei Dateien mit gleichem Namen aufeinandertreffen? Weiss nicht, was dann passiert, irgendne Fehlermeldung wahrscheinlich... Also denke ich, ich mach es besser im selben loop. - Morgen :)
     
  5. chebfarid

    chebfarid MacUser Mitglied

    Beiträge:
    894
    Zustimmungen:
    75
    Mitglied seit:
    05.10.2005
    Richtiger Einwand, hab' ich nicht bedacht :D

    Frohes scripten
    Farid
     
Die Seite wird geladen...

Diese Seite empfehlen