Applescript
29 oktober 2007 - 09:43   
geplaatst door: jessev
Hallo,

Ik heb een script geschreven om bepaalde filenames te kopiëren van de ene folder naar de andere. De files moeten voldoen aan een bepaald criterium, meer bepaald de filename moet beginnen met 4PWEN.
In onderstaande script heb ik al iets in elkaar geknutseld, maar het loopt fout tijdens het kopiëren. Er wordt NIETS gekopieerd. Het resultaat in de dialoogbox zijn wel de filenames die in de folder aanwezig zijn.
Hoe los ik dit probleem op?
Suggesties?


property path: "macintosh hd:desktop folder:1_ps-files Xtranet English"
property watchfolder: "macintosh hd:desktop folder:1_ps-files Xtranet"

tell application "finder"
set filelist to get the name of every file of folder watchfolder as list
repeat with thisfile in filelist
if (characters 1 thru 5 of thisfile) = "4PWEN" then
duplicate (item i of filelist) to path
end if
end repeat
end tell

Applescript
29 oktober 2007 - 09:49    reactie #1
geplaatst door: mvdg
Hoi jessev, welkom op het MacFreak forum!

Ik ben geen Applescript kenner, maar ik zie dat je een "loop" maakt met 'repeat with thisfile in filelist' en later gebruikt 'duplicate item i in filelist'. Die twee lijken mij niet met elkaar te kloppen. Moet je niet gewoon zeggen 'duplicate item thisfile to path' of zoiets? De naam van elk item wordt immers in 'thisfile' geplaatst. Dus waarom gebruik je daarna ineens 'item i'.

Het is maar een idee.

Mitch Design : websites en interactieve toepassingen : http://www.mitchdesign.nl
Applescript
29 oktober 2007 - 09:57    reactie #2
geplaatst door: Borgmonster
Neem deze handleiding er eens bij.

Is makkelijk, goed en handig.

iMac 21.5" | 3.06 GHz | 1 TB | 4 GB| Magic Mouse - iPod nano 16Gb 5e gen. Quidquid latine dictum sit, altum viditur -  MacBook Pro 17" SSD - MacBook Pro 13" - iPhone 6S - iPhone 11 Pro
Applescript
29 oktober 2007 - 09:59    reactie #3
geplaatst door: jessev
Zou gekunnen hebben, maar ik dacht (of denk) nog teveel in dos-termen: inlezen, schrijven, inlezen, schrijven,...
Hier is de aangepaste code maar nu krijg ik een error:
"can't get characters 1 thru 5 of (4PWEN123, 4PWEL123, 4PWES123)" een fout die ik daarnet dus niet had


property path: "macintosh hd:desktop folder:1_ps-files Xtranet English"
property watchfolder: "macintosh hd:desktop folder:1_ps-files Xtranet"

tell application "finder"
set filelist to get the name of every file of folder watchfolder as list
if (characters 1 thru 5 of filelist) = "4PWEN" then
duplicate (item i of filelist) to path
end if
end tell

:confused:

Ik probeer verder uit...

Applescript
29 oktober 2007 - 10:21    reactie #4
geplaatst door: AndreRelink
-> path is een gereserveerd woord in AppleScript.
-> verander path in mypath.
-> Je moet opgeven wat je wilt dupliceren <-> (een file)
-> Bepaal path van de originele file. <-> (file (watchfolder & thisfile as string))
-> Sluit een folder af met :
-> Gebruik juiste path (Macintosh HD:Users:USER:Desktop:)
-> Verander USER.


PROPERTY mypath : "Macintosh HD:Users:USER:Desktop:1_ps-files Xtranet English:"
PROPERTY watchfolder : "Macintosh HD:Users:USER:Desktop:1_ps-files Xtranet:"

tell application "Finder"
set filelist to get the name of every file of folder watchfolder as list
repeat with thisfile in filelist
if ((characters 1 thru 5 of thisfile) as text) = "4PWEN" then
duplicate file (watchfolder & thisfile as string) to mypath
end if
end repeat
end tell

Succes

(Bewerkt door AndreRelink om 10:40, 29-10-2007)

Applescript
29 oktober 2007 - 10:50    reactie #5
geplaatst door: jessev
Goede tips Andre en zeker die ivm path die gereserveerd is!
Ik heb de script aangepast zoals jij aangepast hebt maar telkens komt er een foutmelding in de "duplicate"-regel: "Finder got an error: invalid key form in duplicate file".

Telkens dezelfde melding als met mijn testscripts. Alles verloopt vrijwel perfect totdat er gedupliceerd moet worden. Rarara.


Ondertussen heb ik de pdf doorlopen van de persoon die me de tip gaf deze eens te doorbladeren, maar heel veel nieuws ivm zo'n voorbeeldjes van bepaalde bestande kopieren, wissen, hernoemen,... heb ik er niet in gevonden. Uiteraard blijven alle tips meer dan welkom om dit euvel op te lossen.

Applescript
29 oktober 2007 - 11:00    reactie #6
geplaatst door: AndreRelink
Controleer de property mypath en property watchfolder
property path: "macintosh hd:desktop folder:1_ps-files Xtranet English"
property watchfolder: "macintosh hd:desktop folder:1_ps-files Xtranet"

PROPERTY mypath : alias "Macintosh HD:Users:USER:Desktop:1_ps-files Xtranet English:"
PROPERTY watchfolder : alias "Macintosh HD:Users:USER:Desktop:1_ps-files Xtranet:"

Klopt je Path wel?
Verander USER:

Applescript
29 oktober 2007 - 11:07    reactie #7
geplaatst door: jessev
Gevonden André!!!

Alles qua paths klopte. Wat heb ik veranderd in de regel duplicate: duplicate..... to FOLDER mypath

Blijkbaar moet je nogmaals zeggen dat het over een folder gaat zelfs al verwijst de variabele naar een pad.

Geen duizend maal dank maar honderd duizend maal dank!!
Heb vandaag weer heel wat bijgeleerd waarvoor iedereen dank en in het bijzonder André voor de tip ivm path.


Mvg

Applescript
29 oktober 2007 - 12:06    reactie #8
geplaatst door: AndreRelink
Uitstekend.

-> In mijn eerste code is in het path ALIAS niet gebruikt. (Zie aanpassing)
-> Dat heb je prima opgelost door FOLDER in de code te plaatsten.
-> Gebruik ALIAS of FOLDER, als je meer programmeert zal je zien dat het gebruik van deze code een ander effect heeft.

Alles qua paths klopte
Path klopte (nog) niet, doordat je FOLDER gebruikt is je path nu wel goed.


Je gebruikt dus de map Desktop Folder direct in Macintosh HD.
Ok dat kan, ik gebruik normaal de desktop folder van de gebruiker.

Succes

(Bewerkt door AndreRelink om 14:45, 29-10-2007)