Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Kopieren eines Ordners in einen anderen ? - kopieren mit app
Gehe zu Seite 1, 2  Weiter
 
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
reinheimer
•-->
•-->


Anmeldedatum: 04.04.2001
Beiträge: 26
Wohnort: near Frankfurt

BeitragVerfasst am: 04.04.2001 - 23:57    Titel: Kopieren eines Ordners in einen anderen ? - kopieren mit app Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 05.04.2001 - 13:16    Titel: Kopieren eines Ordners in einen anderen ? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
reinheimer
•-->
•-->


Anmeldedatum: 04.04.2001
Beiträge: 26
Wohnort: near Frankfurt

BeitragVerfasst am: 05.04.2001 - 15:40    Titel: Kopieren eines Ordners in einen anderen ? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
reinheimer
•-->
•-->


Anmeldedatum: 04.04.2001
Beiträge: 26
Wohnort: near Frankfurt

BeitragVerfasst am: 05.04.2001 - 15:45    Titel: Kopieren eines Ordners in einen anderen ? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 05.04.2001 - 17:15    Titel: Kopieren eines Ordners in einen anderen ? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
reinheimer
•-->
•-->


Anmeldedatum: 04.04.2001
Beiträge: 26
Wohnort: near Frankfurt

BeitragVerfasst am: 05.04.2001 - 22:22    Titel: Kopieren eines Ordners in einen anderen ? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
reinheimer
•-->
•-->


Anmeldedatum: 04.04.2001
Beiträge: 26
Wohnort: near Frankfurt

BeitragVerfasst am: 05.04.2001 - 22:23    Titel: Kopieren eines Ordners in einen anderen ? Antworten mit Zitat

ahso, gibt es eine möglichkeit zu überprüfen, ob ein ordner existiert ?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 05.04.2001 - 22:55    Titel: Kopieren eines Ordners in einen anderen ? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
reinheimer
•-->
•-->


Anmeldedatum: 04.04.2001
Beiträge: 26
Wohnort: near Frankfurt

BeitragVerfasst am: 06.04.2001 - 11:43    Titel: Kopieren eines Ordners in einen anderen ? Antworten mit Zitat

hehe, da hast du wohl recht Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
reinheimer
•-->
•-->


Anmeldedatum: 04.04.2001
Beiträge: 26
Wohnort: near Frankfurt

BeitragVerfasst am: 06.04.2001 - 11:56    Titel: Kopieren eines Ordners in einen anderen ? Antworten mit Zitat

Gibt es die Möglichkeit einer logischen Verknüpfung ? Beispiel:
if (folder "Festplatte:Desktop Folder:MeinOrdner1:" && "Festplatte:Desktop Folder:MeinOrdner2:" exists) then ......
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
reinheimer
•-->
•-->


Anmeldedatum: 04.04.2001
Beiträge: 26
Wohnort: near Frankfurt

BeitragVerfasst am: 06.04.2001 - 11:59    Titel: Kopieren eines Ordners in einen anderen ? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 06.04.2001 - 12:54    Titel: Kopieren eines Ordners in einen anderen ? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
macgix
•--->
•--->


Anmeldedatum: 13.12.2000
Beiträge: 206
Wohnort: K–ln

BeitragVerfasst am: 09.04.2001 - 04:07    Titel: Kopieren eines Ordners in einen anderen ? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
reinheimer
•-->
•-->


Anmeldedatum: 04.04.2001
Beiträge: 26
Wohnort: near Frankfurt

BeitragVerfasst am: 14.04.2001 - 11:05    Titel: Kopieren eines Ordners in einen anderen ? Antworten mit Zitat

hallo ???
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 14.04.2001 - 11:35    Titel: Kopieren eines Ordners in einen anderen ? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Beiträge der letzten Zeit anzeigen:   
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Forum Alle Zeiten sind GMT + 2 Stunden
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2002 phpBB Group
Deutsche Übersetzung von phpBB.de


AppleScript für absolute Starter