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

Ordnerabgleich - Script funktioniert mit 9.1 aber nicht mit

 
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
christianb
•->
•->


Anmeldedatum: 04.10.2002
Beiträge: 4
Wohnort: Undenheim

BeitragVerfasst am: 04.10.2002 - 12:06    Titel: Ordnerabgleich - Script funktioniert mit 9.1 aber nicht mit Antworten mit Zitat

Das Script kopiert Daten aus einem Quell-Ordner in einen Ziel-Ordner. Die Daten stehen in einer Steuerdatei. Jeder Datensatz ist eine neue Zeile (Beispiel 4711.eps).
Unter 9.1 kopiert das Teil auch munter drauflos. Unter 9.22 oder 10.2.1 fehlerts.
Finder got an error: Can't set folder (alias "Macintosh HD:Ausgangsfolder:") to alias "MacintoshHD:Zielfolder:Datei1"). Nach "Datei1" kommt ein nicht darstellbares Kästchen gefolgt von Datei2KästchenDatei3 usw. Anscheinend funktioniert das Auslesen aus einer Datei mit "delimiter return" nicht mehr so wie früher!?
Hat jemand eine Idee was da geändert wurde?
Nachfolgend das Beispiel-Script:

on run
tell application "Finder"
activate
try
set folder1 to choose folder with prompt "Wo liegen die neuen EPSe???:"
on error -- z.B. Benutzer hat in ³Abbrechen² geklickt
return
end try
try
set folder2 to choose folder with prompt "Wo sollen die neuen EPSe hin???:"
on error -- z.B. Benutzer hat in ³Abbrechen² geklickt
return
end try
SyncFolders(folder1, folder2) of me
end tell
end run

on open x
tell application "Finder"
set ErrorString to "Zum Abgleichen müssen zwei Ordner angegeben werden.  " & ¨
"Versuchen Sie es noch einmal, indem Sie zwei Ordner auswählen."
if (count items in x) != 2 then
display dialog ErrorString buttons "OK" default button 1
return
end if
set y to item 1 of x
if last character of (y as text) is ":" then --Es ist ein Ordner
set x to item 2 of x
if last character of (x as text) is ":" then --Es ist ein Ordner
SyncFolders(x, y) of me
else
display dialog ErrorString buttons "OK" default button 1
end if
else
display dialog ErrorString buttons "OK" default button 1
end if
end tell
end open

on SyncFolders(folder1, folder2)
SyncEm(folder1, folder2)
--SyncEm(folder2, folder1)
end SyncFolders

on SyncEm(folder1, folder2)
tell application "Finder"
--set Folder1Contents to list folder folder1
set Folder1Contents to read (choose file with prompt "Welche EPSe sollen überspielt werden???") as list using delimiter {return}
set Folder2Contents to list folder folder2
repeat with x in Folder1Contents
if x is not in Folder2Contents then
duplicate alias ((folder1 as text) & x) to folder folder2
else
if kind of alias ((folder1 as text) & x) is "Ordner" then
SyncFolders(((folder1 as text) & x) as alias, ((folder2 as text) & x) as alias) of me
else
set date1 to ´class moddª of alias ((folder1 as text) & x)
set date2 to ´class moddª of alias ((folder2 as text) & x)
if date1 > date2 then
duplicate alias ((folder1 as text) & x) to folder folder2 with replacing
end if
end if
end if
end repeat
display dialog "Habe fertig!"
end tell
end SyncEm


Jetzt schon mal Danke
Chris
_________________
gruß
chris
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: 04.10.2002 - 14:57    Titel: Ordnerabgleich Antworten mit Zitat

Hallo Christian,

mit read... as list gab es in den letzten AppleScript-Versionen immer wieder Probleme.
Du kannst die Sache aber umgehen:

set theText to read (choose file with prompt "Welche EPSe sollen überspielt werden???" )
set Folder1Contents to every paragraph of theText


So bekommst du auch die gewünschte Liste.
Das Skript funktioniert deswegen aber immer noch nicht. Bei mir hakt es dann am duplicate-Befehl. Das hatte ich in einem anderen Thread auch schon mal beschrieben.
Im Eventprotokoll sieht man, dass aus 'duplicate' ein 'copy' gemacht wird, was ja in AppleScript ein großer Unterschied ist.

Getestet mit OS X 10.1.5
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com


Zuletzt bearbeitet von Snow am 22.02.2003 - 04:20, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 04.10.2002 - 15:15    Titel: Ordnerabgleich Antworten mit Zitat

Jetzt habe ich nochmal unter System 9.1 nachgesehen. Im Eventprotokoll sieht es gleich aus. Es steht also auch 'copy' drin. Im Gegensatz zu OS X funktioniert das Kopieren aber.

Unter OS X kommt es fast genau zu der Fehlermeldung, wie bei dir, mit dem Unterschied, dass die Pfadangaben zu den zu kopierenden Dateien bereits stimmen.

--> Finder go an error: Can't set folder (alias "X Disk:Users:Snow:Desktop:Zielordner:") to alias "X Disk:Users:Snow:Desktop:Quellordner:Datei1".
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
christianb
•->
•->


Anmeldedatum: 04.10.2002
Beiträge: 4
Wohnort: Undenheim

BeitragVerfasst am: 04.10.2002 - 21:33    Titel: Ordnerabgleich Antworten mit Zitat

Vielen Dank für die Hilfe!
Bei mir läufts jetzt ohne Fehlermeldung unter OS 10.2.1. Ich mußte nur noch die Liste umdrehen und das erste Element aus der Liste entfernen, da unsere Datenbank nach dem Dateinamen immer einen "Return" mitschickt. Dadurch ist das letzte Listen-Element "nichts" und er kopiert als Abschluss nochmals das komplette Quelldirectory in das Zieldirectory Smile
....
set theText to read (choose file with prompt "Welche EPSe sollen überspielt werden???")
set TempContents to every paragraph of theText
set Folder1Contents to rest of reverse of TempContents
set Folder2Contents to list folder folder2
repeat with x in Folder1Contents
....

Christian
_________________
gruß
chris
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
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
Seite 1 von 1

 
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