Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
reinheimer •-->

Anmeldedatum: 04.04.2001 Beiträge: 26 Wohnort: near Frankfurt
|
Verfasst am: 04.04.2001 - 23:57 Titel: Kopieren eines Ordners in einen anderen ? - kopieren mit app |
|
|
Hallo,
Ich habe noch kein Erfahrungen mit Apple Script.
Ich möchte einen Ordner in einen anderen kopieren.
Der Quellordner liegt auf der lokalen HD und der Zielordner ist eine Apple File Sharing Freigabe eines anderen Rechners.
Wie fange ich an ? Wo finde ich die passenden Befehle ?
Wie starte ich das Script regelmässig, z.B. alle 5 minuten ?
danke schonmal, wäre echt nett |
|
Nach oben |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 05.04.2001 - 13:16 Titel: Kopieren eines Ordners in einen anderen ? |
|
|
Hallo reinheimer,
beim Kopieren handelt es sich um eine Aktion des Finders. Die nötigen Befehle findest du also, wenn du das Befehlsverzeichnis des Finders aufrufst.
In deinem Fall wäre das 'duplicate'
Hier ein kleines (noch recht unvollkommenes) Skript zum Kopieren eines Ordners:
set OriginalOrdner to choose folder with prompt "Bitte einen Ordner auswählen"
set Pfad to choose folder with prompt "Zielordner auswählen"
tell application "Finder"
try
with timeout of 3000 seconds
duplicate OriginalOrdner to folder Pfad with replacing
end timeout
on error errMsg
display dialog errMsg
end try
end tell
Zuerst wird der Ordner ausgewählt, der kopiert werden soll, dann der Zielordner.
Die Befehle zum Kopieren müssen an den Finder gerichtet werden. Deshalb 'tell application "Finder"'.
Kopiervorgänge können unter Umständen ja recht lange dauern. Deshalb habe ich den timeout-Wert mal auf 3000 Sekunden gesetzt. Der Default-Wert in AppleScript beträgt 60 Sekunden. Das ist oft zu kurz und man erhält die Meldung 'AppleEvent timed out'.
Die Ordner-Pfade kannst du natürlich auch fix im Skript festlegen. Wie das Ganze mit dem Zielordner über FileSharing funktioniert kann ich dir leider nicht sagen. Aber ich denke, dass sich ein gemountetes Volume eines anderen Rechners ebenso wie ein lokales Volume verhalten sollte.
Wenn du also den Zielordner im Skript fest eingeben willst, musst du daran denken, dass der Fall berücksichtigt wird, dass das Zielvolume (mit dem Zielordner) evtl. nicht gemountet ist.
Also muss eine if-Bedingung eingebaut werden, die überprüft, ob der Zielordner existiert. Wenn nicht, könnte der Befehl 'mount volume' (aus den Standard Additions) in Aktion treten.
Ich würde sagen, probier's mal soweit aus, dann sehen wir weiter.
Gruß _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Zuletzt bearbeitet von Snow am 01.03.2003 - 16:16, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
reinheimer •-->

Anmeldedatum: 04.04.2001 Beiträge: 26 Wohnort: near Frankfurt
|
Verfasst am: 05.04.2001 - 15:40 Titel: Kopieren eines Ordners in einen anderen ? |
|
|
Vielen Dank fuer Deine Hilfe. Es klappt prima soweit.
Wie kann man es erreichen, dass das Script alle 5 Minuten automatisch auf dem Mac ausgeführt wird ? |
|
Nach oben |
|
 |
reinheimer •-->

Anmeldedatum: 04.04.2001 Beiträge: 26 Wohnort: near Frankfurt
|
Verfasst am: 05.04.2001 - 15:45 Titel: Kopieren eines Ordners in einen anderen ? |
|
|
Achso, und wie schaffe ich es einen Pfad fest zu definieren.
Z.B. einen Ordner der auf dem Schreibtisch liegt.
Set quellordner to "???" |
|
Nach oben |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 05.04.2001 - 17:15 Titel: Kopieren eines Ordners in einen anderen ? |
|
|
Um Skripte regelmäßig ablaufen zu lassen oder zu bestimmten Zeitpunkten empfiehlt sich der
iDo Script Scheduler
Einfach anklicken und downloaden, kostet nichts.
Ein Ordnerpfad sieht so aus:
"Festplatte:Desktop Folder:MeinOrdner:"
Das wäre also der Ordner "MeinOrdner" auf dem Desktop. Wichtig ist, dass der Pfad mit einem Doppelpunkt endet. Vergisst man den Doppelpunkt, sucht AppleScript nach einer Datei mit dem Namen "MeinOrdner". _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Zuletzt bearbeitet von Snow am 01.03.2003 - 16:15, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
reinheimer •-->

Anmeldedatum: 04.04.2001 Beiträge: 26 Wohnort: near Frankfurt
|
Verfasst am: 05.04.2001 - 22:22 Titel: Kopieren eines Ordners in einen anderen ? |
|
|
Ok, vielen Dank für Deine Mühe.
Ein gemountetes Directory verhällt sich genauso wie ein Ordner meinst Du ? Das heißt ein mounting Link auf dem Desktop wäre genau wie ein Ordner ansteuerbar ? |
|
Nach oben |
|
 |
reinheimer •-->

Anmeldedatum: 04.04.2001 Beiträge: 26 Wohnort: near Frankfurt
|
Verfasst am: 05.04.2001 - 22:23 Titel: Kopieren eines Ordners in einen anderen ? |
|
|
ahso, gibt es eine möglichkeit zu überprüfen, ob ein ordner existiert ? |
|
Nach oben |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 05.04.2001 - 22:55 Titel: Kopieren eines Ordners in einen anderen ? |
|
|
Natürlich gibt es diese Möglichkeit!
Dafür ist wieder der Finder zuständig:
tell application "Finder"
if (folder "Festplatte:Desktop Folder:just testing:" exists) then
display dialog "Den Ordner gibt es wirklich!"
else
display dialog "Ich konnte den Ordner nicht finden"
end if
end tell
Wenn wir hier so weitermachen, gibt das einen tollen Thread (und ein tolles Skript?) ;)
Gruß _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com |
|
Nach oben |
|
 |
reinheimer •-->

Anmeldedatum: 04.04.2001 Beiträge: 26 Wohnort: near Frankfurt
|
Verfasst am: 06.04.2001 - 11:43 Titel: Kopieren eines Ordners in einen anderen ? |
|
|
hehe, da hast du wohl recht  |
|
Nach oben |
|
 |
reinheimer •-->

Anmeldedatum: 04.04.2001 Beiträge: 26 Wohnort: near Frankfurt
|
Verfasst am: 06.04.2001 - 11:56 Titel: Kopieren eines Ordners in einen anderen ? |
|
|
Gibt es die Möglichkeit einer logischen Verknüpfung ? Beispiel:
if (folder "Festplatte:Desktop Folder:MeinOrdner1:" && "Festplatte:Desktop Folder:MeinOrdner2:" exists) then ...... |
|
Nach oben |
|
 |
reinheimer •-->

Anmeldedatum: 04.04.2001 Beiträge: 26 Wohnort: near Frankfurt
|
Verfasst am: 06.04.2001 - 11:59 Titel: Kopieren eines Ordners in einen anderen ? |
|
|
wie kann man die inhalte eines ordners kopieren ?
also ordern1 existiert mit files und ordern2 existiert auch, ist aber leer... nun sollen die dateien von ordner1 in ordner2, ohne die ordner selber zu kopieren |
|
Nach oben |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 06.04.2001 - 12:54 Titel: Kopieren eines Ordners in einen anderen ? |
|
|
Zuerst zu den logischen Verknüpfungen:
if (folder "Festplatte:Dokumente:MeinOrdner1:" exists) and (folder "Festplatte:Desktop Folder:BackupOrdner:" exists) then
Du könntest statt mit 'and' auch mit 'or' verknüpfen. Jenachdem was gebraucht wird.
Jetzt zum Skript:
Die Dateien kopieren statt des ganzen Ordners geht dann so:
tell application "Finder"
set OrdnerInhalt to (every file of OriginalOrdner)
try
with timeout of 3000 seconds
duplicate OrdnerInhalt to folder Pfad with replacing
end timeout
on error errMsg
display dialog errMsg
end try
end tell
Wir lassen den Finder erst mal feststellen, was im Ordner vorhanden ist. Das wird in einer weiteren Variablen festgehalten. Dann darf der Finder diese Liste abarbeiten indem er die einzelnen Files kopiert.
Wenn sich jetzt im Ordner noch Unterordner befinden, wird's schwieriger. Da müsste man mit einem rekursiven Handler arbeiten.
Gruß _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com |
|
Nach oben |
|
 |
macgix •--->


Anmeldedatum: 13.12.2000 Beiträge: 206 Wohnort: K–ln
|
Verfasst am: 09.04.2001 - 04:07 Titel: Kopieren eines Ordners in einen anderen ? |
|
|
So richtig schön dürfte es dann so sein:
-- - Skriptanfang
property thePath : path to desktop folder as text -- Ja, das geht auch als "Property"!
property theFolderName1 : "MeinOrdner1:" -- Man beachte den Doppelpunkt am Ende des Namens!
property theFolderName2 : "MeinOrdner2:" -- Dieser zeigt einen Ordner an!
-- Zuerst bilden wir die Ordnerpfade
set theFolderPath1 to (thePath & theFolderName1)
set theFolderPath2 to (thePath & theFolderName2)
tell application "Finder" -- Und all das Folgende "kann" nur der "Finder"!
(* -- Wenn die Kommentarbegrenzungen "(*" und "*)" entfernt werden, existieren die Ordner immer, da sie ggf. erzeugt werden!
if not (exists folder theFolderPath1) then make new folder at desktop with properties {name:theFolderName1}
if not (exists folder theFolderPath2) then make new folder at desktop with properties {name:theFolderName2}
*)
-- Zuerst erfolgt die logische Abfrage mit "and" anstatt "&" !
if (exists folder theFolderPath1) and (exists folder theFolderPath2) then
-- Beide Ordner existieren, also melden!
activate
display dialog "Beide Ordner existieren auf dem Schreibtisch. Jetzt wird der Inhalt von Ordner 1 in Ordner 2 kopiert!" buttons {"OK"} default button 1 with icon note giving up after 5
-- Und nun kopieren wir den Inhalt von Ordner 1 in Ordner 2
try
copy (items of folder theFolderPath1) to folder theFolderPath2
my GoodMess1()
on error -- Die existierten bereits!
-- Also ab in den Papierkorb mit den alten Zöpfen
move (items of folder theFolderPath2) to the trash
-- ...und nochmal probieren, also kopieren!
copy (items of folder theFolderPath1) to folder theFolderPath2
my GoodMess2()
end try
else
-- Nee, existieren nicht, auch melden!
activate
display dialog "Es könnte sein, dass einer der Ordner existiert! Es wurden keine Dateien oder Ordner kopiert!" buttons {"OK"} default button 1 with icon note giving up after 5
end if
end tell
on GoodMess1()
activate
display dialog "Der Inhalt von Ordner 1 wurde erfolgreich in Ordner 2 kopiert!" buttons {"OK"} default button 1 with icon note giving up after 5
end GoodMess1
on GoodMess2()
activate
display dialog "Der Inhalt von Ordner 1 wurde erfolgreich in Ordner 2 kopiert! Alte Zöpfe liegen im Papierkorb!" buttons {"OK"} default button 1 with icon note giving up after 5
end GoodMess2
-- - Skriptende
Thomas
"Let's script the world to make it better!" _________________ [macgix] |
|
Nach oben |
|
 |
reinheimer •-->

Anmeldedatum: 04.04.2001 Beiträge: 26 Wohnort: near Frankfurt
|
Verfasst am: 14.04.2001 - 11:05 Titel: Kopieren eines Ordners in einen anderen ? |
|
|
hallo ??? |
|
Nach oben |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 14.04.2001 - 11:35 Titel: Kopieren eines Ordners in einen anderen ? |
|
|
So wird's nicht funktionieren. Es sollte zumindest heißen:
display dialog "Hallo ???" buttons {"OK"} default button "OK" with icon note
;) _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com |
|
Nach oben |
|
 |
|