Anfänger - AS für Finder?

Yoda

Aktives Mitglied
Thread Starter
Dabei seit
29.08.2002
Beiträge
1.766
Reaktionspunkte
2
Hallo!

Ich habe mir auch wieder mal vorgenommen mich mit AS beschäftigen - deshalb mal eine kurze Frage - gibt es für AS-Anfänger ein paar Zeilen (Befehle) mit denen man beginnen kann? (pdf-File oder so???) nur mal so zum reinschmökern...

ich hätte gerne mal damit begonnen Files in einen Ordner zu schieben bzw. ev. auch zu löschen... (so kleine Finder-Schachen - und später dann mal weitergehen...)

Danke schon mal

Yoda
 
Hallo Yoda,

auf meiner Seite (Link unten) findest du die deutschen Ausgaben des MacScripter's Magazine. Das dürfte auch in der Classic-Umgebung laufen. Es handelt sich dabei um ein interaktives Tutorial.

Als PDF ist gerade ein Werk in Produktion. Bert Altenburg hat ein ca. 70-seitiges Dokument erstellt, das alles von Anfang an haarklein erklärt. Allerdings bin ich mit der Übersetzung noch nicht fertig. - Es gilt also abzuwarten.

Gruß
 
...

Hallo Snow,

willkommen bei macuser.de

Gruß Andi
 
Danke, Snow, das ist wirklich eine super Seite!!!

Wilkommen hier im Forum!!! clap clap clap

@Andi Danke auch für deinen Link!

Gruss aus dem sonnigen Süden carro carro carro

Yoda
 
Hallo Yoda,

ein paar ganz nette Anfängerlektionen gibts auch bei www.mac4ever.de als pdf Dateien zum download.

Du findest sie auf mac4ever.de unter dem Punkt "Tutorials".

mac4ever ist auch sonst eine recht interessante Seite mit einigen guten Infos und Downloads.

viele Grüsse aus dem ebenfalls sonnigen Fernost

Joachim
 
Hallo!

Danke für eure Tipps!

ich habe mittlerweile schon etwas herumgespielt, aber das was ich wollte habe ich leider noch nicht gefunden.

könnt ihr bitte nur mal zeigen wie man nachsieht ob ein File vorhanden ist, und wenn ja es in den Müll verschiebt?

ich habe schon etwas herumprobiert, aber leider ohne Erfolg.

so in etwa sah es bei mir die Befehlszeile aus:


move file /Volumes/Daten/Fotos/Foto001 to the trash

zuvor müsste, glaub ich, noch etwas kommen wie

if exist

ich hatte leider noch nicht allzuviel Zeit um mir alles genau anzusehen - wäre super wenn ihr mir bei dieser Kleinigkeit helfen könntet.

Danke

Yoda
 
Hallo Yoda,

hier ein kleines Beispiel:

set theFilePath to "Festplatte:Users:Benutzername:Dokumente:TestDatei.txt"

tell application "Finder"
if file theFilePath exists then
move file theFilePath to trash
end if
end tell


Gruß
 
Zuletzt bearbeitet:
ooch Snow

Hi hab mir extra mühe gegeben...
PHP:
tell application "Finder"
	if the file "Foto001" of folder "Bilder" of home exists then
		
		display dialog "Foto001 löschen?" buttons {"Nein", "Ja"} default button "Ja" with icon note
		if button returned of result = "Ja" then
			delete file "Foto001" of folder "Bilder" of home
			display dialog "Foto001 im Papierkorb" buttons "Hurra" default button "Hurra"
		else
			display dialog "Foto001 nicht im Papierkorb" buttons "Na gut" default button "Na gut" with icon caution
		end if
	else
		display dialog "Yoda Du hast kein Foto001." buttons "Schade" default button "Schade" with icon caution
	end if
end tell

Gruß Andi ;)
 
Hallo Snow!

danke für dein Script!

er funktioniert!!!

noch eine Frage:

wie bringe ich ihm bei, dass er, falls ein File mit dem selben Namen schon im Müll liegt es trotzdem dorthin bewegt wird?

@Andi!

das sieht ja auch ganz gut aus - langsam interessiert mich Script immer mehr!!!!

Gewaltig was man damit alles machen kann!!!!

Gruss aus dem sonnigen Süden

Yoda
 
...

Hallo Yoda,

warum willst Du ihm das beibringen? Das file landet als Foto001 Kopie im Papierkorb würd ich jetzt mal so sagen...

Gruß Andi
 
Original geschrieben von Yoda
Hallo Snow!

danke für dein Script!

er funktioniert!!!

noch eine Frage:

wie bringe ich ihm bei, dass er, falls ein File mit dem selben Namen schon im Müll liegt es trotzdem dorthin bewegt wird?
 

Das dürfte doch eigentlich keine Probleme bereiten. Der Finder hängt dann doch einfach den Zusatz "Kopie" an den Dateinamen bzw. nummeriert auch noch mehrere Kopien durch.

Anders sieht die Sache aus, wenn man Objekte in ein anderes Verzeichnis verschiebt. Man muss dann schon eine Aussage treffen, was passieren soll, wenn die Datei bereits existiert.

Am einfachsten wäre noch, evtl. vorhandene Dateien zu ersetzen. Das kann man dann beim "move"-Befehl mit angeben:

move file "Pfadangabe:zur:Datei" to "Pfadangabe:zum:Zielordner:" with replacing

Will man das nicht, sollte man die move-Anweisung in einen "try...on error...end try" Block einbauen. Wenn die Datei also bereits existiert, kommt es zu einem Fehler, der jedoch durch diesen Block abgefangen wird. Im on error Teil kannst du dann festlegen, was im Fehlerfall passieren soll.

Gruß
 
mich würde es ja nicht stören, aber ich bekomme eine Fehlermeldung:

"Es existiert bereits ein Objekt mit dem selben Namen an diesem Ort."

noch eine andere Frage:

Kann man das Ergebnisfeld auch deaktivieren?

Danke

Yoda
 
Original geschrieben von Snow
 
Am einfachsten wäre noch, evtl. vorhandene Dateien zu ersetzen. Das kann man dann beim "move"-Befehl mit angeben:

move file "Pfadangabe:zur:Datei" to "Pfadangabe:zum:Zielordner:" with replacing

 

Kann man da der Datei auch ein Datum anhängen?

wenn ja, wie müsste dann diese Zeile aussehen?

Danke

Yoda
 
Wenn du ein Datum in den Dateinamen einbinden willst, die du verschieben möchtest, wäre es ratsam, die Namensänderung vor dem Verschieben durchzuführen, da ja sonst wieder der Fehler erscheinen kann, dass die Datei am Zielort bereits existiert.

Zum Einbinden eines Datums habe ich erst vor ein paar Tagen ein Skript gepostet:
Datum in Dateinamen einbinden

Dort müsstest du dann am Ende des "doTheTrick"-Handlers nur noch die Anweisungen zum Verschieben der Datei einbauen.

Gruß
 
verwirrt

Hallo Yoda,

warum ein Datum an die Datei? Damit Du Ordnung im Papierkorb hast?

Oder seh ich jetzt was falsch?

Gruß Andi
 
Original geschrieben von Yoda
mich würde es ja nicht stören, aber ich bekomme eine Fehlermeldung:

"Es existiert bereits ein Objekt mit dem selben Namen an diesem Ort."
 

Mit welcher Systemversion und AppleScript-Version arbeitest du?
 
in diesem Forum habe nun auch etwas herumgeschmöckert - wirklich nicht schlecht!!! :)

nun ist mir etwas einfacheres eingefallen - warum nicht früher - zuerst den Papierkorb löschen!!!

wie kann ich es anstellen, dass das Script erst dann weitermacht, wenn er leer ist?

Danke

Yoda
 
Unter OS 9 war die Sache ja noch einfach. Da wurden alle Befehle nach einander abgearbeitet. Das Skript lief erst weiter, wenn die "Bestätigungsmeldung" eines Skriptbefehls eingegangen war.

Mit dem Multithreading wird's stellenweise eben schwieriger, aber nicht unmöglich.
Ich habe gerade mal folgendes erfolgreich getestet:

tell application "Finder"

set trashList to every item of trash
repeat until trashList = {}
empty the trash
set trashList to every item of trash
delay 1
end repeat

set derDateiPfad to ((home) as string) & "Dokumente:TestDatei"

if file derDateiPfad exists then
move file derDateiPfad to trash
-- oder:
-- delete file derDateiPfad
end if

end tell

Vielleicht würde ja schon das delay von 1 Sekunde genügen aber durch die zusätzliche Abfrage der trashList ist es auf jeden Fall sicherer.

Gruß
 
...

Hallo Snow,

der delete befehl geht doch - warum move to trash?
und warum ein datum zum löschen?
ich verstehs nicht!

Gruß Andi
 
Zurück
Oben Unten