Dateien verschieben mit Applescript..

Dieses Thema im Forum "Scripting und Automatisierung" wurde erstellt von in2ane, 01.06.2005.

  1. in2ane

    in2ane Thread Starter MacUser Mitglied

    Beiträge:
    8
    Zustimmungen:
    0
    MacUser seit:
    01.02.2005
    Hallo,

    ich habe das Problem, dass ich noch kein osx 10.4 mit Automator habe und eine recht simple Aufgabe zu lösen ist.

    Es sollen 6 Ordner ständig überwacht werden, in die Dateien kopiert werden können. Sobald eine Datei reinkommt soll sie auch gleich wieder mit Hilfe eines Applescript in einen anderen Ordner auf einem andere Rechner verschoben werden. D.h. kommt eine Datei in den Ordner "a" soll sie in einen anderen Ordner "A" auf einem anderen Rechner verschoben werden. Landet eine Datei im Ordner "b" soll sie in "B" verschoben werden. Und das Ganze soll als Endlosschleife funktionieren.

    Ist doch mit einem Applescript mit Sicherheit ganz simpel zu lösen, oder?
    Kann mir jemand von euch helfen?
     
  2. macnum

    macnum MacUser Mitglied

    Beiträge:
    77
    Zustimmungen:
    0
    MacUser seit:
    14.04.2005
    Ob das irgendwie geht würde mich auch interessieren...

    Aber kann man eigentlich irgendwie Dateien im Finder von einer Platte auf die andere verschieben (nicht kopieren!)? Da gibt's doch bestimmt ein Tastenkürzel das man gedrückt halten muss...
     
  3. Stephan303

    Stephan303 MacUser Mitglied

    Beiträge:
    78
    Zustimmungen:
    0
    MacUser seit:
    12.02.2004
    hi,

    hochschieb...
    ist gerade aktuell auch mein problem:
    von einem server soll ständig die aktuelle version eines ordners auf meinem rechner als kopie vorliegen. und, wenn ich nach der heimarbeit wieder im büro bin, sollen meine aktualisierungen automatisch auf den server gepackt werden. sehr komfortabel wäre noch eine jeweilige abfrage vorher ob ein download oder upload erfolgen soll.
    unter windows gibts da ein programm (im system integriert) - ich glaub dokumentenmappe - das genau diese anforderungen erfüllt!

    vielen dank für eure mühen, suche auch parallel nach einem script, bin aber selbst noch nicht so fit, das ich es gleich mal selbst schreiben würde...
    stephan
     
  4. msslovi0

    msslovi0 MacUser Mitglied

    Beiträge:
    2.713
    Zustimmungen:
    115
    MacUser seit:
    20.03.2005
    Komisch das es hier noch keine Antwort gibt, noch nicht mal ein RTFM :D

    Als kleiner Denkanstoß (irgendwie fehlt hier [applescript][...][/applescript], also muss es ohne Highlighting gehen):
    Code:
    on idle
    	set folder_from to "hd_form:folder:"
    	set folder_to to "hd_to:folder:"
    	set folderlist to list folder alias folder_from
    	try
    		repeat with x in folderlist
    			if x does not start with "." then
    				tell application "Finder"
    					try
    						move document file (folder_from & x as alias) to folder (folder_to as alias)
    					on error
    						beep
    					end try
    				end tell
    			end if
    		end repeat
    	end try
    	return 60
    end idle
    
    folder_from ist der Ordner, in dem sich die Daten ursprünglich befinden, folder_to der Zielordner

    In Zeile 6 wird der Ursprungsordner durchlaufen und in Zeile 10 versucht, jede Datei, auf die das Script trifft, an die Zieldestination zu kopieren. Klappt das nicht, wird ein Beep ausgegeben (man könnte da auch mit Fehlermeldungen, Errorlog o.ä. arbeiten, ihr wollt ja aber auch was machen). Vorher wird in Zeile 7 noch überprüft, ob die Datei mit einem Punkt beginnt, um diese im Finder versteckten Dateien (wie etwa .DS_Store) nicht mit zu kopieren.

    Das ganze stecken wir dann in einen idle und legen mit return in Zeile 18 fest, in welchen Abständen das Script laufen soll (in diesem Fall alle 60 Sekunden).

    Natürlich könnte man da noch einiges optimieren, so prüft das Script derzeit nicht, ob die Datei im Urpsrungsordner auch schon wirklich komplett übertragen ist oder ob der Urpsrungs- und Zielordner überhaupt existieren (was gerade bei gemounteten Netzwerkvolumes ganz hilfreich wäre).

    Matt
     
    Zuletzt bearbeitet: 03.06.2005
  5. eml2306

    eml2306 MacUser Mitglied

    Beiträge:
    272
    Zustimmungen:
    13
    MacUser seit:
    16.03.2005
    Was Du beschreibst ist ein gefundenes Fressen für die Ordneraktionen. Wenn Du das als Skript speicherst und als Ordneraktion aktivierts, wirst Du bei jedem Element gefragt, wo es hin soll, und dann wird es in diesen Ordner verschoben.

    Was noch zu tun ist:

    • Fest verdrahten der jeweiligen Zielordner, d.h. Du brauchst sechs Fassungen des Skripts und mußt in jede explizit den Zielordner reinschreiben
    • Verschieben in nicht-lokalen Ordner, das sollte aber je nach Art des entfernten Ordners kein Thema sein, weil der sich ja irgendwo in /Volumes tummeln dürfte.


    Code:
    property dialog_timeout : 30 -- set the amount of time before dialogs auto-answer.
    
    on adding folder items to this_folder after receiving added_items
    	display dialog "Skript läuft"
    	try
    		tell application "Finder"
    			--get the name of the folder
    			set the folder_name to the name of this_folder
    			set the target_folder to choose folder with prompt "Zielordner auswählen"
    			repeat with curr_item in added_items
    				move curr_item to target_folder
    			end repeat
    		end tell
    	end try
    end adding folder items to
    
     
    Zuletzt bearbeitet: 03.06.2005
  6. NiLS-Da-BuBi

    NiLS-Da-BuBi MacUser Mitglied

    Beiträge:
    706
    Zustimmungen:
    8
    MacUser seit:
    27.11.2003
    Hallo,

    das ist momentan auch mein Problem - ich habe zwar Automator möchte da aber nicht jedesmal starten. Ich möchte gerne jede datei die mit istock*.* in meinen Bilderordner verschieben alle andern können dort bleiben. Wie kann ich das mit den Ordneraktionen und dem Skript oben hinbekommen?
     
  7. chebfarid

    chebfarid MacUser Mitglied

    Beiträge:
    894
    Zustimmungen:
    75
    MacUser seit:
    05.10.2005
    Ciao,
    ich denke Du brauchst einfach nur das Skript von eml2306 leicht zu verändern. Ich hab allerdings nicht genau verstanden, welche Files du verschieben willst: alle deren Namen "istock" enthalten?
    Falls dem so ist, sollte dies funktionieren:
    Code:
    on adding folder items to this_folder after receiving added_items
    tell application "Finder"
    set the target_folder to [i]pfad_zum_Bildordner[/i]
    repeat with curr_item in added_items
    set n to name of curr_item
    if "istock" is in n then                        
    move curr_item to target_folder
    end if
    end repeat
    end tell
    end adding folder items to
    Skript speichern und als Ordneraktion an Deinen Arbeitsordner hängen, fertig. ;)

    Buon scripting
    Farid
     
Die Seite wird geladen...

Diese Seite empfehlen