hilfe bei script | datei/-en umbenennen

C

chrislee

Neues Mitglied
Thread Starter
Dabei seit
08.12.2012
Beiträge
11
Reaktionspunkte
0
hi alle zusammen,

hoffentlich könnt ihr mir helfen. ich bin neu hier aufm forum und bitte sämtliche fehler erstmal zu übersehen. :D
nun zum script. auch dort bin ich kompletter quer einsteiger.

das unten genannte script nimmt dateien (in meinem falle chronologisch exportierte fotos) aus dem ordner "1" und mischt alle im ordner "temp" durcheinander. anschliessend werden die dateien aus dem "temp" wieder zurückgespielt und der ordner "temp" wird gelöscht.

was aber ab und an passiert, dass dateien nach der scriptausführung "verschluckt" werden. bei der letzten ausführung befanden sich 114 dateien im ordner "1" und davon wurden nur 97 zurückgespielt. mache ich da was falsch, oder lässt das script solche fehler zu? wenn ja, wie kann man das dem Script das untersagen so nach dem Motto: "apple script do not swallow data"

Code:
tell application "Finder"
    set fol1 to folder "1" of (path to desktop)
    
    
    make new folder at (path to desktop) with properties {name:"temp"}
    set fol2 to folder "temp" of (path to desktop)
    set theNum to number of items in fol1
    
    repeat with i from 1 to theNum
        set this_item to some item of fol1
        set fname to name of this_item
        set name of this_item to (i as text) & fname
        set x to (first item of fol1 whose name is (i as text) & fname)
        move x to fol2
    end repeat
    move files of fol2 to fol1
    delete fol2
    
    display dialog "habe fertig => durchgemischt !"
end tell
quit application "AppleScript Editor"

wäre euch sehr sehr sehr dankbar.

Gruß Chris
 
Kannst du nachvollziehen, welcher der beiden Kopiervorgänge scheitert? Eventuell reicht schon ein delay an der richtigen Stelle
 
nein, leider nicht. er gibt mir keinerlei negative fehlercodes aus :( :hum:, oder zumindest seh ich nix.
ich poste mal das protokoll das er mir ausgibt

Code:
tell application "Finder"
    path to desktop
        --> alias "Chris:Users:flipster:Desktop:"
    get folder "1" of alias "Chris:Users:flipster:Desktop:"
        --> folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk
    path to desktop
        --> alias "Chris:Users:flipster:Desktop:"
    make new folder at alias "Chris:Users:flipster:Desktop:" with properties {name:"geheimerordner"}
        --> folder "geheimerordner" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk
    path to desktop
        --> alias "Chris:Users:flipster:Desktop:"
    get folder "geheimerordner" of alias "Chris:Users:flipster:Desktop:"
        --> folder "geheimerordner" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk
    count folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk
        --> 4
    get some item of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk
        --> document file "test (1 of 4).jpg" of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk
    get name of document file "test (1 of 4).jpg" of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk
        --> "test (1 of 4).jpg"
    set name of document file "test (1 of 4).jpg" of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk to "1test (1 of 4).jpg"
        --> "1test (1 of 4).jpg"
    get item 1 of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk whose name = "1test (1 of 4).jpg"
        --> document file "1test (1 of 4).jpg" of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk
    move document file "1test (1 of 4).jpg" of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk to folder "geheimerordner" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk
        --> document file "1test (1 of 4).jpg" of folder "geheimerordner" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk
        --> error number 0
    get some item of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk
        --> document file "test (3 of 4).jpg" of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk
    get name of document file "test (3 of 4).jpg" of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk
        --> "test (3 of 4).jpg"
    set name of document file "test (3 of 4).jpg" of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk to "2test (3 of 4).jpg"
        --> "2test (3 of 4).jpg"
    get item 1 of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk whose name = "2test (3 of 4).jpg"
        --> document file "2test (3 of 4).jpg" of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk
    move document file "2test (3 of 4).jpg" of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk to folder "geheimerordner" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk
        --> document file "2test (3 of 4).jpg" of folder "geheimerordner" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk
        --> error number 0
    get some item of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk
        --> document file "test (4 of 4).jpg" of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk
    get name of document file "test (4 of 4).jpg" of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk
        --> "test (4 of 4).jpg"
    set name of document file "test (4 of 4).jpg" of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk to "3test (4 of 4).jpg"
        --> "3test (4 of 4).jpg"
    get item 1 of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk whose name = "3test (4 of 4).jpg"
        --> document file "3test (4 of 4).jpg" of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk
    move document file "3test (4 of 4).jpg" of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk to folder "geheimerordner" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk
        --> document file "3test (4 of 4).jpg" of folder "geheimerordner" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk
        --> error number 0
    get some item of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk
        --> document file "test (2 of 4).jpg" of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk
    get name of document file "test (2 of 4).jpg" of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk
        --> "test (2 of 4).jpg"
    set name of document file "test (2 of 4).jpg" of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk to "4test (2 of 4).jpg"
        --> "4test (2 of 4).jpg"
    get item 1 of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk whose name = "4test (2 of 4).jpg"
        --> document file "4test (2 of 4).jpg" of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk
    move document file "4test (2 of 4).jpg" of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk to folder "geheimerordner" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk
        --> document file "4test (2 of 4).jpg" of folder "geheimerordner" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk
        --> error number 0
    move every file of folder "geheimerordner" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk to folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk
        --> {document file "1test (1 of 4).jpg" of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk, document file "2test (3 of 4).jpg" of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk, document file "3test (4 of 4).jpg" of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk, document file "4test (2 of 4).jpg" of folder "1" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk}
        --> error number 0
    delete folder "geheimerordner" of folder "Desktop" of folder "flipster" of folder "Users" of startup disk
        --> folder "geheimerordner 21-13-12" of item ".Trash" of folder "flipster" of folder "Users" of startup disk
        --> error number 0
    display dialog "habe fertig - durchgemischt !"
        --> {button returned:"OK"}
end tell
Ergebnis:
{button returned:"OK"}

soll ich das zurückkopieren weglassen? dass der editor das zurückkopieren ned richtig macht?

update: ohne das zurückschieben in fol1 bleiben alle dateien da... also will mein finder die dateien nicht vollständig (in voller anzahl) verschieben.
 
Zuletzt bearbeitet:
Es könnte sein, dass das "delete fol2" schon anfängt, bevor alle Dateien verschoben sind. Du könntest das umgehen, indem du abfragst, ob fol2 noch Dateien enthält:

repeat until items of fol2 is {}
delay 1
end repeat
 
das könnte sein ja. danke schonmal. an welche stelle kommt die abfrage? vor den del befehl?
 

merce. gib mir ein moment... ich probiers schnell aus und sag dir umgehend bescheid, obs funzt:D

update: ich peils ned... gibt es eine art datei zwischenspeicher?

denn ich habe 21 fotos im ordner 1 und er spielt mir 26 wieder zurück???
 
Vielleicht beschreibst du mal, was du mit deinem Skript genau erreichen willst, ich habe nämlich das Gefühl, du machst dir das Leben nur unnötig schwer ;)
 
meine ausgangssituation:

ich bin event fotograf und habe 100 fotos von nem event... damit nicht 3 fotos von selben leuten (nur in anderen posen) hintereinander in der galerie sind, habe ich dieses script gefunden, das mir meine bearbeiteten fotos durcheinandermischen soll... so dass foto 3001 nicht nach 3000 kommt, sondern einfach zufällig irgendwo zwischen den 100 fotos ist... kann das dieses script überhaupt??

diese exportierten fotos werden dann von mir per plugin auf facebook geladen... und die 3 fotos sollen ohne manuellen eingriff nicht direkt hintereinander in der galerie sein, was sie ohne änderung meinerseits ohne das script wären.
 
Das Skript von dir macht schon das, was du möchtest, aber sehr kompliziert. Folgendes Skript versieht die Namen deiner Dateien mit einer zufälligen Zahl:

Code:
[B]tell [/B][COLOR=#0433FF][FONT=Verdana][I]application[/I][/FONT][/COLOR][FONT=Verdana] "Finder"
[/FONT][FONT=Verdana]    [B]set[/B] [COLOR=#4f8f00]theFolder[/COLOR] [B]to[/B] [COLOR=#0433ff][I]folder[/I][/COLOR] "test" [B]of[/B] [COLOR=#812fdc]desktop[/COLOR][/FONT]
[FONT=Verdana]    [B]set[/B] [COLOR=#4f8f00]theseFiles[/COLOR] [B]to[/B] [B]every[/B] [COLOR=#0433ff][I]item[/I][/COLOR] [B]of[/B] [COLOR=#4f8f00]theFolder[/COLOR][/FONT]
[FONT=Verdana]    [B]repeat[/B] [B]with[/B] [COLOR=#4f8f00]anFile[/COLOR] [B]in[/B] [COLOR=#4f8f00]theseFiles[/COLOR][/FONT]
[COLOR=#4F8F00][FONT=Verdana][COLOR=#000000]        [B]set[/B] [/COLOR]randomNumber[COLOR=#000000] [B]to[/B] [/COLOR][COLOR=#012fbe][B]random number[/B][/COLOR][COLOR=#012fbe]from[/COLOR][COLOR=#000000] 1 [/COLOR][COLOR=#012fbe]to[/COLOR][COLOR=#000000] ([/COLOR][COLOR=#0433ff][B]count[/B][/COLOR][COLOR=#000000] [B]of[/B] [/COLOR]theseFiles[COLOR=#000000])[/COLOR][/FONT][/COLOR]
[FONT=Verdana]        [B]set[/B] [COLOR=#812fdc]name[/COLOR] [B]of[/B] [COLOR=#4f8f00]anFile[/COLOR] [B]to[/B] [COLOR=#4f8f00]randomNumber[/COLOR] & [COLOR=#812fdc]name[/COLOR] [B]of[/B] [COLOR=#4f8f00]anFile[/COLOR] [B]as[/B] [COLOR=#0433ff][I]string[/I][/COLOR][/FONT]
[FONT=Verdana]    [B]end[/B] [B]repeat[/B][/FONT]
[B]end [/B][B]tell[/B]

Dabei können Zahlen mehrfach auftauchen. Je mehr Bilder in dem Ordner sind, desto geringer ist jedoch die Wahrscheinlichkeit, dass 2 Bilder vom gleichen Motiv direkt hintereinander kommen. Diese Wahrscheinlichkeit lässt sich sehr einfach verringern, indem du nicht eine Zufallszahl von 1 bis Anzahl der Bilder generierst, sondern z.B. von 1-999999, oder einfach nur eine random number (dann hast du allerdings eine Fließkommazahl vor dem Dateinamen). Wenn man etwas mehr Aufwand betreiben möchte, kann man natürlich auch prüfen, ob die Zahl bereits vorkommt.
 
  • Gefällt mir
Reaktionen: chrislee
(...)Wenn man etwas mehr Aufwand betreiben möchte, kann man natürlich auch prüfen, ob die Zahl bereits vorkommt.
-> danke, das genügt dem anfänger vollkommen...

mein problem wurde in windeseile gelöst. vielen dank an Pill, du bist der beste... und wenn du jetzt sagst du kennst dich mit lightroom auch noch aus dann bist du mein held des jahres.
 
Ich benutze tatsächlich auch noch Lightroom ;)
 
Wenn man etwas mehr Aufwand betreiben möchte, kann man natürlich auch prüfen, ob die Zahl bereits vorkommt.

Schreib randomNumber zusätzlich in ein Array und man kann "repeaten", wenn die nummer da schon drin ist.
Ich denke, das ist schneller, als immer auf "file exists" zu prüfen.

Code:
try
   set max to 9
   --
   set mylist to {}
   repeat max times
      set i to random number from 1 to max
      repeat while i is in mylist
         set i to random number from 1 to max
      end repeat
      set end of mylist to i
   end repeat
   log mylist
on error
   log "error"
end try
 
Zuletzt bearbeitet:
Ich benutze tatsächlich auch noch Lightroom ;)

wie geil ist das denn ??!!?? :clap::clap:

und jetzt kommt der punkt an dem ich nicht mehr durchblicke, wie ich lightroom sagen kann:
bitte einmal mischen und erst dann mit dem plugin von jeffrey friedl auf facebook laden.
 
Eigentlich müsste es reichen, wenn du dem Ordner, in dem die Bilder sind, eine Ordneraktion anhängst. In Lightroom musst und kannst du da wahrscheinlich nichts machen.
 
Eigentlich müsste es reichen, wenn du dem Ordner, in dem die Bilder sind, eine Ordneraktion anhängst. In Lightroom musst und kannst du da wahrscheinlich nichts machen.
=> habe das anders gelöst...

habe noch ne frage, kann es sein, dass Pill's Script nur dateien durcheinander wurschtelt die mit einer zahl beginnen?
 
Nein, das sollte egal sein.
 
Vielleicht kann man das mit Jeffreys 'run any command' erledigen.

Exportiert das FB-Plugin erst lokal und macht dann den upload?
 
Teste folgendes mit nur einer Datei.

Bau das mal bei run-any-command in "Command to execute:" ein:

Code:
'/bin/mv' '{FILE}' '{folder}000-{file}'

Und dann ins FB-Plugin bei Post-Process-Actions.

So müsste eine Datei nach Ordner/000-Name umbenannt werden.

Wird die hochgeladen? Wenn nicht, wo liegt sie und was ist noch in dem Ordner?

Kannst du einen screenshot vom FB-Plugin posten mit "File Naming" ausgeklappt?
 
Zurück
Oben Unten