Dropbox erstellen

mak

Gast
Hallo,

ich bin absoluter Newbie in diesem Metier und möchte einen aktiven Ordner auf einem Netzwerk-Volume installieren, der folgende Aktion durchführen soll:

Die dort gesicherten PDFs sollen in zwei weitere Verzeichnisse verschoben werden...

Demnach muss ich hier in dem Script zuerst den duplicate und dann den move Befehl anwenden - kann das zu Problemen führen bzw. wie gebe ich die resource in ein Netzwerk korrekt an?

Kann ich dieses Script rein aus der Standard-Suite vom Finder lösen oder greifen diese Befehle nur vom Finder und ich muss das vielleicht sogar ganz anders lösen?

Hmpf - ihr werdet wahrscheinlich schmunzeln, aber ich will auf dem Produktionsvolume nur ungerne als Newbie testen und bekomme dann ganz bestimmt riesigen Ärger mit meinem Admin :-D

Deshalb ziehe ich Euch in diesem Falle lieber vorab zu rate... :innocent: und jeder braucht ja auch mal was zum Schmunzeln :-D

Ich danke Euch vorab!
 

hubionmac

Tydemans Early Worcester
Registriert
25.06.04
Beiträge
393
quasi mundgerecht

Servus,

wenn Du so etwas anlegst, würde ich das immer so allgemein wie nur möglich handhaben. D.h. Du versuchst in dem AppleScript so allg. Routinen und einfache wie möglich zu erzeugen.
Ich arbeite dann bei solchen Scripten, bei denen Ordner auf einer Platte genutzt werden, immer gerne mit Aliasen, so muss man später das Script nicht mehr anpassen... blafasel....

Also hier mal eine Lösung...schon kommentiert... quasi mundgerecht =)
Code:
on adding folder items to this_folder after receiving added_items
    -- so fangen Ordneraktionen an, alle in den Ordner hinzugefügten Dateien
    -- werden so in der Variable added_items zusammengefasst
    -- und der Ordner in dem sich das abspielt ist demnach this_folder
    tell application "Finder"
        set myfolderx to POSIX path of this_folder
        --der Ordner der überwacht wird... als UNIX Pfad
        set folderkind to kind of folder 1 of startup disk
        --Tod sicher, so bekommt man den Typ eines Ordners in eine Variable gespeichert
        set aliasfiles to every alias file of this_folder
        
        
        repeat with this_item in added_items
            -- jetzt wird der Reihe nach jede Datei/Ordner in den Ordner bewegte Datei abgearbeitet.
            if name of this_item ≠ "error.log" then
                -- wirklich jede, nein error.log will keiner
                set copycount to 0
                repeat with this_aliasfile in aliasfiles
                    set isfolder to false
                    try
                        if kind of original item of this_aliasfile = folderkind then
                            set isfolder to true
                        end if
                    on error
                        set aliasname to name of this_aliasfile
                        set errosmsg to do shell script "date \"+%d.%m.%Y %H:%M:%S\""
                        set errosmsg to errosmsg & " Da gab es einen Fehler mit dem Alias " & aliasname & ", vielleicht zeigt der Alias auf keinen Ordner oder der Alias selber ist defekt."
                        --wir basteln uns einen Fehlermeldung fürs Log
                        do shell script "echo " & quoted form of errosmsg & " | cat>>" & quoted form of myfolderx & "error.log"
                        -- und schreiben das ans Ende des Error Logs bzw. in ein error Log
                        set label index of this_aliasfile to 2
                    end try
                    -- der Bereich ist nur zur Sicherheit, gegen Anwenderfehler
                    -- vielleicht ist ja ein Alias defekt oder zeigt auf etwas, in dass man nicht kopieren kann...
                    if isfolder = true then
                        try
                            duplicate this_item to this_aliasfile
                            set copycount to copycount + 1
                            -- in kopieren....
                        on error
                            set aliasname to name of this_aliasfile
                            set itemname to name of this_item
                            set errosmsg to do shell script "date \"+%d.%m.%Y %H:%M:%S\""
                            set errosmsg to errosmsg & "Hm, die Datei " & itemname & " scheint es in " & aliasname & " schon zu geben, also nix kopiert"
                            --wir basteln uns einen Fehlermeldung fürs Log
                            do shell script "echo " & quoted form of errosmsg & " | cat>>" & quoted form of myfolderx & "error.log"
                            -- und schreiben das ans Ende des Error Logs bzw. in ein error Log
                            set label index of this_item to 2
                        end try
                    end if
                end repeat
                
                if copycount > 0 then
                    delete this_item
                    -- sollte die Datei zumindest in einen der Ordner kopiert worden sein, kann das Original gelöscht werden =)!
                end if
            end if
        end repeat
    end tell
end adding folder items to
das dann als Skript abspeichern und in den Ordner /Library/Scripts/Folder Action Scripts speichern.
(na ok, die Alias zu den Ziel-Ordnern musst Du natürlich dann noch anlegen..:-*
 
  • Like
Reaktionen: Nathea

mak

Gast
Servus,

wenn Du so etwas anlegst, würde ich das immer so allgemein wie nur möglich handhaben. D.h. Du versuchst in dem AppleScript so allg. Routinen und einfache wie möglich zu erzeugen.
Ich arbeite dann bei solchen Scripten, bei denen Ordner auf einer Platte genutzt werden, immer gerne mit Aliasen, so muss man später das Script nicht mehr anpassen... blafasel....



ich muss eins sagen: DANKE - ich bin dein fan :-* :-* :-*

ich werde das gleich mal testen...:p