1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

absoluter neuling bittet um hilfe bei apple script

Dieses Thema im Forum "OS X-Developer" wurde erstellt von pelikanruban, 22.10.09.

  1. pelikanruban

    pelikanruban Jonagold

    Dabei seit:
    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
     
  2. LittlePixel

    LittlePixel Strauwalds neue Goldparmäne

    Dabei seit:
    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
     
  3. pelikanruban

    pelikanruban Jonagold

    Dabei seit:
    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
     
  4. pelikanruban

    pelikanruban Jonagold

    Dabei seit:
    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
     
  5. Rastafari

    Rastafari Golden Noble

    Dabei seit:
    10.03.05
    Beiträge:
    17.896
    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.)
     
  6. pelikanruban

    pelikanruban Jonagold

    Dabei seit:
    03.04.07
    Beiträge:
    20
    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
     

Diese Seite empfehlen