Problem beim Kopieren eines Spotlightsuchergebnisses in AppleScript ...

M

matzehali

Aktives Mitglied
Thread Starter
Dabei seit
24.11.2004
Beiträge
162
Reaktionspunkte
0
Hi alle,

bin mal wieder dabei ein Skript zu schreiben und habe eigentlich alles soweit fertig und funktionierend, lediglich die entscheidende Kopieraktion funktioniert nicht.
Also, was das Skript machen soll:

Ein Laufwerk nach Nuke-Skripten durchsuchen.
Diese vom Datum mit dem letzten Durchlauf (via letztem vorhandenen BKP-Ordner) vergleichen und nur die neueren rauspicken.
Diese in einen neuen Ordner kopieren.

Habe jeden der Schritte bis auf den letzten hinbekommen, bekomme sehr komische Meldungen, da. Vielleicht hat wer 'ne Idee. Habe mal alle Varianten die ich bisher probiert habe untendrunter auch noch eingefügt, ich habe keine Ahnung, er macht mit jeder Variante Probleme. Wo ist mein Fehler?

Vielen Dank und ein frohes neues Jahr,

MatzeHali

Code:
set datum to do shell script "date '+%Y%m%d%H%M%S'"
tell application "Finder"
	set thepath to {"MacintoshHD:Users:Username:Documents:project&skriptbackups"}
	set recentbackups to every folder in thepath
end tell
set mostrecent to ((current date) - (365 * days)) -- um ein startdatum zu haben, was etwas zurückliegt, zum vergleichen
repeat with i in recentbackups
	set i to i as string
	if creation date of (get info for (POSIX file i)) > mostrecent then
		set mostrecent to creation date of (get info for (POSIX file i))
	end if
end repeat
set searchpath to "/Volumes/4500GB"
set spotlightquery to "\"kMDItemFSName == '*.nk'\""
set command to "mdfind -onlyin " & searchpath & " " & spotlightquery
set allskripts to paragraphs of (do shell script command)
tell application "Finder"
	set bkpfolder to make new folder at thepath with properties {name:datum}
	copy allskripts to bkpfolder
end tell
set newskripts to {}
repeat with i in allskripts
	set i to i as string
	if modification date of (get info for (POSIX file i)) > mostrecent then
		set newskripts to newskripts & {(POSIX file i)}
		do shell script "cp " & quoted form of POSIX path of (POSIX file i) & space & quoted form of POSIX path of bkpfolder
	end if
end repeat
--copy allskripts to bkpfolder
--copy newskripts to bkpfolder
--repeat with i in newskripts
--	set i to i as string
--	tell application "Finder"
--		copy (POSIX file i) to bkpfolder
--	end tell
--end repeat
 
copy allskripts to bkpfolder
Habe nicht so recht verstanden, an welcher Stelle Dein Script einen Fehler signalisiert.
Frage: den oben zitierten Befehl copy *) willst Du benutzen um eine Variable zu definieren oder um im Finder Files zu kopieren ?
Sofern das zweite der Fall ist, mußt Du duplicate benutzen (s. auch das Scriptverzeichnis des Finder)

*) copy ist ein veralteter AppleScript-Befehl um einer Variablen einen Wert zuzuweisen, normalerweise wird heute nur noch set benutzt
Ciao
Farid
 
Zuletzt bearbeitet:
Ah, das muß ich glatt mal ausprobieren. Ja, ich will Files kopieren, keine Variablen zuweisen. :eek:
Mich wundert nur, warum auch die Umwegvariante über die Shell nicht funktioniert hat.

Ich schau' mal ob ich es hinbekomme, aber das scheint mal grundsätzlich der Grund zu sein, vielen Dank.

MatzeHali
 
Zurück
Oben Unten