• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

absoluter neuling bittet um hilfe bei apple script

pelikanruban

Jonagold
Registriert
03.04.07
Beiträge
20
hi!

ich bin absoluter neuling in apple script, bin irgendwie jetzt so ins kalte wasser geschmissen worden und habe eine aufgabe zu erledigen, die ich so auf die schnelle nicht selbst lösen kann (ich bin bereits dabei ein tutorial für absolute anfänger durchzumachen)

es geht um folgendes script:

on open foo
try
repeat with x from 1 to number of items in foo
set foo2 to item x of foo
set the foo3 to the quoted form of the POSIX path of foo2
do shell script ("/bin/chmod -R g+wX " & foo3)
end repeat
end try
end open

dieses script bewirkt, wenn man mehrere dateien oder ordner markiert und man diese auf das script zieht, dass dabei alle benutzerberechtigungen umgeschrieben werden.

ich bräuchte das jetzt nicht für die markierten ordner, sondern genau für einen speziellen ordner (damit ich es dann per zeitplan täglich/stündlich ausführen kann)

mein einfall war das script einfach auf diese zeile zu verkürzen:

do shell script ("/bin/chmod -R g+wX " & "Macintosh:TESTORDNER")

weil ich brauche das durchzählen der markierten dateien, welche in foo2 abgespeichert werden ja nicht. sondern nur speziell einen einzigen ordner.

diese zeile verstehe ich überhaupt nicht:
set the foo3 to the quoted form of the POSIX path of foo2

kann mir bitte jemand behilflich sein?

danke,
vg
pelikan
 

LittlePixel

Strauwalds neue Goldparmäne
Registriert
09.07.08
Beiträge
641
Hallo,

Du bist nah dran. Lasse bitte mal laufen und schaue genau hin:

Code:
set myFolder to choose folder

display alert "Ergebnis" message (myFolder as text)

set myFolder to POSIX path of myFolder

display alert "Ergebnis" message (myFolder as text)

set myFolder to quoted form of POSIX path of myFolder

display alert "Ergebnis" message (myFolder as text)

- das erste ist ein HFS-Pfad
- das zweite ist ein POSIX-Pfad
- das dritte ist ein POSIX-Pfad, der von zwei Hochkommas umschlossen wird

Wichtig: Im Zusammenhang mit -shell verwendest Du immer -quoted form of !

Lasse Dir bitte nichts anderes sagen ;)

Viele Grüße
 

pelikanruban

Jonagold
Registriert
03.04.07
Beiträge
20
super, vielen dank, hab's gecheckt! bin leider nicht früher dazu gekommen dir zurückzuschreiben.

wie ich es verstehe, sind die "number of items in foo", die anzahl der dateien, welche man markiert hat (die man dann auf das script zieht). gibts auch eine mögichkeit, wie ich alle dateien, welche in dem ordner drinnen sind, AUTOMATISCH markieren lasse und dass die AUTOMATISCH dann auf das script gezogen werden?

danke schonmal,
lg
pelikan
 

pelikanruban

Jonagold
Registriert
03.04.07
Beiträge
20
hi, nochmal ich,

ich weiß jetzt ungefähr wie ich alle ordner in einem ordner auswähle.

Code:
set folderSelected to choose folder "ordner auswählen"
tell application "Finder"
    set listOfFolders to every folder of folderSelected
end tell

set theList to {}
repeat with aFolder in listOfFolders
    set temp to the name of aFolder
    set theList to theList & temp
end repeat

was ich jetzt zum erfolgreich sein eben noch bräuchte: wie "ziehe" (ausführen?) ich jetzt genau diese ansammlung von ordnern auf ein bereits vorhandenes script? (das script, das ich im ersten post geschrieben habe)

für einen tip wär ich dankbar!

lg
pelikanruban
 

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
wie "ziehe" (ausführen?) ich jetzt genau diese ansammlung von ordnern auf ein bereits vorhandenes script?
Speichere das Skript als Programm oder Programm-Bundle (empfohlen), dann versteht es Drag&Drop.

(Startest du es mit Doppelklick, wird der "run" Handler ausgeführt, bei einer Drag&Drop Aktion wird der "open" Handler benutzt. Verwendest du beide im Skript, kannst du das Verhalten des Ablaufs komplett verändern, je nach der Art wie es gestartet wird.)
 

pelikanruban

Jonagold
Registriert
03.04.07
Beiträge
20
Speichere das Skript als Programm oder Programm-Bundle (empfohlen), dann versteht es Drag&Drop.

(Startest du es mit Doppelklick, wird der "run" Handler ausgeführt, bei einer Drag&Drop Aktion wird der "open" Handler benutzt. Verwendest du beide im Skript, kannst du das Verhalten des Ablaufs komplett verändern, je nach der Art wie es gestartet wird.)

das mit dem script als programm starten hatte ich schon gemacht. nur musste ich da immer die ganzen ordner händisch markieren und die dann draufziehen. das war eben nicht vollautomatisch.

wenn ich das ganze mit dem run handler mache, könnte ich ja ein ical-event erstellen, welches stündlich abläuft (ich brauche das ganze, um daten, welche auf einem xsan liegen, durzuberechtigen). ich müsste das also nur noch irgendwie im script angeben, dass dieses script mit den ausgewählten ordnern geöffnet wird. o_O