Thema: hilfe bei script | datei/-en umbenennen
-
hilfe bei script | datei/-en umbenennen
hi alle zusammen,
hoffentlich könnt ihr mir helfen. ich bin neu hier aufm forum und bitte sämtliche fehler erstmal zu übersehen. 
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
-
-
MU Mitglied
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
, 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.
Geändert von chrislee (09.12.2012 um 21:55 Uhr)
-
-
MU Mitglied
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?
-
-
MU Mitglied
-
-

Zitat von
Pill
genau.
merce. gib mir ein moment... ich probiers schnell aus und sag dir umgehend bescheid, obs funzt
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???
-
-
MU Mitglied
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.
-
-
MU Mitglied
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:
tell application "Finder"
set theFolder to folder "test" of desktop
set theseFiles to every item of theFolder
repeat with anFile in theseFiles
set randomNumber to random numberfrom 1 to (count of theseFiles)
set name of anFile to randomNumber & name of anFile as string
end repeat
end tell
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.
-
Lesezeichen