Dateien entfernen / Pfade

G

Ganymed01

Hallo zusammen,

ich schreibe gerade an meinem ersten Apple-Skript welches schlicht und ergreifend Dateien aus vordefinierten Ordnern löschen soll.

Nun habe ich folgendes geschrieben, um das Dateiverhalten mal auszutesten:
tell application "Finder"
activate "/Applications"
make new folder "test123"
end tell

Wenn ich das ausführe, kommt immer die Fehlermeldung:
"Finder" hat einen Fehler erhalten. Einige Dateien können nicht in den erwarteten Typ umgewandelt werden.

-> Was heißt das :confused:

Außerdem hab ich als zweites ein Problem, dass ich nicht in einen Ordner wechslen kann, der ein Leerzeichen besitzt: "/Applications/QuarkXPress\ 6.5/"
Der Backslash stört ihn irgendwie. Aber Unix arbeitet so...

Ich muss mit den Unix-Pfaden arbeiten (nicht mit den Doppelpunkten in der Trennung), weil ich das Skript für X User schreibe und daher flexibel sein muss. Das heißt Macintosh HD heißt nicht überall Macintosh HD und ich muss auch in die Home-Verzeichnisse wechslen.

Kann mir jemand zu den beiden Problemen helfen?

Die Suche hat mir nichts gebracht dazu.


LG,
Ganymed01
 
Gany, für so was bin ich zu blöd... :(

Aber ich schiebe Dich gerne hoch! :)
 
für unix pfade benutzt man in applescript posix path

das problem mit den leerzeichen in den ordner namen kriegst du mit "cd \"dir 2\"" oder den einfachen "cd 'dir 2'" hin
 
Zuletzt bearbeitet:
Ganymed01 schrieb:
Hallo zusammen,

ich schreibe gerade an meinem ersten Apple-Skript welches schlicht und ergreifend Dateien aus vordefinierten Ordnern löschen soll.

Nun habe ich folgendes geschrieben, um das Dateiverhalten mal auszutesten:
tell application "Finder"
activate "/Applications"
make new folder "test123"
end tell

Wenn ich das ausführe, kommt immer die Fehlermeldung:
"Finder" hat einen Fehler erhalten. Einige Dateien können nicht in den erwarteten Typ umgewandelt werden.

-> Was heißt das :confused:

Das koennte damit zusammen haengen, dass du keinen Ordner in Applications anlegen kannst ohne Admin zu sein. Fuer die anderen Fragen brauche ich mehr Zeit die ich gerade nicht habe :)
 
oneOeight schrieb:
für unix pfade benutzt man in applescript posix path

das problem mit den leerzeichen in den ordner namen kriegst du mit "cd \"dir 2\"" oder den einfachen "cd 'dir 2'" hin

Wie sähe das mit QuarkXPress 6.5 aus?

Die Konsole macht mir ein QuarkXpress\ 6.5 draus...

posix guck ich mal...

@Applications
Ach so, der möchte nen neuen Ordner Applications erstellen oder wie? Wie wechsel ich denn in das Directory? Doch mit dem o.g. posix oder nicht?
 
Also ich hab jetzt nochmal getestet:
Auf meinem Desktio kann ich dateien löschen wie ich lustig bin. Nur nicht im Applications Folder. Woran liegts? Ich bin ein Admin-User...

Allerdings kann ich dort keinen anlegen.
der Befehl make new folder "test" geht nicht :(
 
Zuletzt bearbeitet von einem Moderator:
Ciao,
das erste Problem kannst Du folgendermaßen lösen:
Code:
tell application "Finder"
	set p to path to applications folder
	make new folder at p with properties {name:"test123"}
end tell
Wenn Du ein neues Finder-Element in einer bestimmten Position anlegen willst, mußt Du wie im Beispiel "at" verwenden.

Das zweite Problem hat wie schon von anderen angedeutet mit Posix path zu tun:
Code:
-- angenommen der Ordner "f" in den Apps heißt "Adobe Photoshop 7"
set f to POSIX path of f
-- ergibt: "/Applications/Adobe Photoshop 7/"
set f to quoted form of f
-- ergibt: "'/Applications/Adobe Photoshop 7/'"
Hoffe, das bringt Dich weiter

Saluti
Farid

PS: Kölle Alaaf!
 
Zuletzt bearbeitet:
Hallo zusammen,

was hat es denn mit diesem "set" auf sich? Das ist doch dann eine Variable, deren Pfad ich vorher gesetzt habe, oder nicht?
Also "set p to irgendwas" wie in den Code-Beispielen vorher.

Ansonsten schon mal danke, das probiere ich gleich mal aus... :)

Gruß
Gany

Edit:
Code:
tell application "Finder"
	set p to path to applications folder
	make new folder at p with properties {name:"test123"}
end tell

Also ich hab das mal auf doof abgetippt. Das hat auch funktioniert.
Nur: Kann mir das wer mal erklären?
p wird doch nicht deklariert und initialisiert, oder doch? In der Ersten Zeile nach "tell" vielleicht? Ist "applications folder" ein feststehender Begriff oder wie habe ich das zu verstehen, dass er das sofort findet.
Was für weitere poperties gibt es noch außer dem Namen? :)

Wenn ich einen anderen Pfad haben möchte, müsste das dann:

Code:
set p to path to "/Users/Dekstop"
heißen?

Das mit dem Posix hab ich immer noch nicht verstanden :eek:
 
Zuletzt bearbeitet von einem Moderator:
So, ich nochmal *zum PowerUser werd* :D

Also, ich wollte in meinem QuarkXPress Ordner einen Ordner "test123" erstellen.

Also habe ich der Variablen "f" den Wert mit set folgendes zugewiesen:
Code:
set f to "/Applications/QuarkXPress 6.5/"

In dem Tell-Statement habe ich dann folgendes stehen:

Code:
set f to POSIX path of f
-- set f to quoted form form of f
make new folder at f with poperties {name:"test123"}

Dann bekomme ich vom Finder die Meldung:
"Finder" hat einen Fehler erhalten. "some object" kann nicht gelesen werden.

Was heißt denn das schon wieder? :rolleyes:

So, das Letzte füs Erste :D

Und zwar hab ich mir den Pfad mal ausgeben lassen. Da steht folgendes:
'/:Applications:QuarkXPress 6.5:'
drinne...

Kein Wunder, dass er nichts findet... Was tun? :confused:

PS: Gibts irgendwie ne anständige komplett Befehlreferenz? In dem Apple Skript für Absolulte Starter habe ich kaum was von dem gefunden was hier steht...
 
Zuletzt bearbeitet von einem Moderator:
Du hast da einen Tippfehler (poperties)
 
Wile E. schrieb:
Du hast da einen Tippfehler (poperties)

Ist nicht schlimm ;) der Code wird schon richtig compiliert und ich habs hier einfach nochmal per Hand abgetippt.
Im richtigen Code stimmts wieder :D
 
Also, die Pfade in OS X sind zugegebenermassen am Anfang ziemlich verwirrend.
Das vor allem auch deshalb, weil seit der Einfuehrung von OS X zwei verschiedene Methoden koexistieren, die nicht unmittelbar miteinander kompatibel sind:
a) der "klassische" Macpfad: z.B. "myMac:myFolder1:myFolder2:myFolder3:"
b) der POSIX path, hinter dem sich die Unix-Schreibweise fuer den gleichen Pfad verbirgt: z.B. "myMac/users/pippo/desktop/myFolder1/myFolder2/myFolder3"

Da Du, wenn ich Dich richtig verstehe in Deinem Skript auf Unixbasis arbeiten moechtest, musst Du eventuelle Macpfade in POSIX-Pfade uebersetzen, das macht genau das Kommando
Code:
set name_variable to POSIX path of [I]original_pfad[/I]

Diese POSIX path werden dummerweise nicht immer im Unix-Terminal akzeptiert, weil z.B. ein File-/Ordnername evtl. Leerzeichen enthaelt. Sie muessen deshalb noch einmal uebersetzt werden in "quoted form of", sprich der Pfad wird via AppleScript zwischen Anfuehrungszeichen gepackt.

Ein einfaches Beispiel um via AppleScript einen MacPfad zu erhalten ist das Kommando "choose file/folder":
Code:
set meinPfad to choose folder
Wenn Du das startest, oeffnet sich das normale Finder Auswahlfenster, Du waehlst einen File oder einen Ordner aus und im AppleScript Ergebisfenster siehst Du den Pfad zum ausgewaehlten Objekt.
Mit der Variable "meinPfad" kannst Du jetzt weiterarbeiten und sie wenn noetig in einen POSIX Path umwandeln...

Happy scripting
Farid
 
Zurück
Oben Unten