[GastForen Programmierung/Entwicklung AppleScript repeat with

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

repeat with

ehwda
Beiträge gesamt: 66

16. Okt 2016, 10:42
Beitrag # 1 von 11
Bewertung:
(4678 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Einen schönen Sonntagmorgen wünsche ich allen

Ich habe hier ein Script, das mir Kopfzerbrechen bereitet:
Code
try 
tell application "Finder"
activate
set xDateien to (selection) as alias list
repeat with x from 1 to count of xDateien
tell application "System Events" to set xTyp to (get class of item (xDateien as text))
if xTyp = file then
move xDateien to xOrdner
else
display dialog "ist keine Datei"
end if
end repeat
end tell
on error errMsg number errNum
if errNum is -15267 then
display dialog "schon vorhanden"
end if
end try


Damit schaufle ich ausgewählte Dateien in einen bestimmten Ordner. Das Script prüft auch, ob das Gewählte wirklich eine Datei und ob sie evtl. schon am Ziel vorhanden ist.
Also das funktioniert, solange ich nur eine Datei wähle. Wähle ich mehrere, dann passiert nichts.
Ich komme nicht dahinter warum . . .
Kann jemand helfen?
Danke und Gruss,
Eugen, Mac Mini, OSX 10.7.5
X

repeat with

Hans Haesler
  
Beiträge gesamt: 5826

16. Okt 2016, 13:22
Beitrag # 2 von 11
Beitrag ID: #553299
Bewertung:
(4656 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Eugen,

ich bin unterwegs und kann nichts ausprobieren. Doch wenn Du zwei Mal 'item x of' an den richtigen Stellen einfügst, sollte es klappen.

Gruss, Hans


als Antwort auf: [#553297]

repeat with

ehwda
Beiträge gesamt: 66

16. Okt 2016, 14:52
Beitrag # 3 von 11
Beitrag ID: #553300
Bewertung:
(4624 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans

Herzlichen Dank für deinen Sonntagsdienst. Ja, so hat's geklappt. (Schon wieder was gelernt.)
Gutes Unterwegssein.

Gruss, Eugen


als Antwort auf: [#553299]

repeat with

Hans Haesler
  
Beiträge gesamt: 5826

17. Okt 2016, 11:01
Beitrag # 4 von 11
Beitrag ID: #553312
Bewertung:
(4443 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Eugen,

bitte sehr.

Gut, dass Du es geschafft hast, das Script ohne präzisere Angaben zu ergänzen. Aber ich hatte zu wenig Zeit dafür.

Die Ursache, wäre mit einer Erweiterung des 'on error'-Abschnitts angezeigt worden:

Code
on error errMsg number errNum 
if errNum is -15267 then
display dialog "schon vorhanden"
else
activate me
display dialog errMsg
end if
end try

Aber damit weiss man dennoch nicht, was dagegen zu tun ist.

Übrigens: Es ist nicht notwendig, "System Events" zu bemühen. Der "Finder" kann auch die 'class' ermitteln. Bei einer Datei kommt 'document file' zurück und bei einem Ordner ist es 'folder'.

Code
set xOrdner to (choose folder) as Unicode text 

try
tell application "Finder"
activate
set xDateien to selection as alias list
repeat with x from 1 to count of xDateien
set xTyp to (get class of item (item x of xDateien))
if xTyp = document file then
move item x of xDateien to xOrdner
else
display dialog "ist keine Datei"
end if
end repeat
end tell
on error errMsg number errNum
if errNum is -15267 then
activate me
display dialog "schon vorhanden"
end if
end try

Eine schon vorhandene Datei könnte überschrieben werden, indem die 'move'-Zeile mit 'with replacing' ergänzt wird:

Code
move item x of xDateien to xOrdner with replacing 

Aber das weisst Du vermutlich schon.

Gruss, Hans


als Antwort auf: [#553300]

repeat with

ehwda
Beiträge gesamt: 66

17. Okt 2016, 16:44
Beitrag # 5 von 11
Beitrag ID: #553326
Bewertung:
(4396 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans

Danke für deine ergänzenden Erklärungen.
Finder's Meldungen: 'document file' und 'folder' habe ich auch "schon endeckt" und wollte es anwenden, ist ja noch einfacher.
Und ja, 'replacing' verwende ich bei Bedarf auch.

Gruss, Eugen


als Antwort auf: [#553312]

repeat with

ehwda
Beiträge gesamt: 66

17. Okt 2016, 17:21
Beitrag # 6 von 11
Beitrag ID: #553329
Bewertung:
(4388 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans

Ich habe das Script nach deiner Vorlage geändert und 'on error' verschoben. Jetzt bekomme ich den Hinweis für jede schon vorhandene Datei einzeln mit Pfad und Nahmen.
So passt es mir.

Nochmal danke.

Gruss, Eugen


als Antwort auf: [#553312]

repeat with

ehwda
Beiträge gesamt: 66

17. Okt 2016, 17:24
Beitrag # 7 von 11
Beitrag ID: #553330
Bewertung:
(4386 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Habe vergessen, den Code mitzuliefern:
Code
set xOrdner to {"Pfad:"} as Unicode text 

try
tell application "Finder"
activate
set xDateien to selection as alias list
repeat with x from 1 to count of xDateien
set xTyp to (get class of item (item x of xDateien))
if xTyp = document file then
set dies to (item x of xDateien as text)
else
display dialog "dies ist keine Datei"
end if
try
move dies to xOrdner
on error
display dialog dies & " \n\nist schon vorhanden" buttons "OK" default button 1
end try
end repeat
end tell
end try


Gruss, Eugen


als Antwort auf: [#553312]

repeat with

Hans Haesler
  
Beiträge gesamt: 5826

17. Okt 2016, 17:47
Beitrag # 8 von 11
Beitrag ID: #553332
Bewertung:
(4377 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Eugen,

bitte sehr.

Und Respekt: Gut überlegt und das Script im Sinne des Forums (= HilfDirSelbst) angepasst.

Ach ja: Der äussere 'try'-Wickel könnte entfernt werden.

Gruss, Hans


als Antwort auf: [#553330]

repeat with

ehwda
Beiträge gesamt: 66

20. Okt 2016, 16:44
Beitrag # 9 von 11
Beitrag ID: #553405
Bewertung:
(4110 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans

Danke für das Lob und ja, der äussere Wickel ist jetzt überflüssig.
Es macht einfach Freude, wenn etwas funktioniert.

Gruss, Eugen


als Antwort auf: [#553332]

repeat with

CodeBeginner
Beiträge gesamt:

21. Okt 2016, 10:45
Beitrag # 10 von 11
Beitrag ID: #553412
Bewertung:
(3973 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

an alle vielen vielen Dank ich hatte genau dasselbe Problem was mich durchgehend genervt hat.
Ich hoffe ich kann auch mal hier jemandem so helfen.

Gruß

CodeBeginner


als Antwort auf: [#553405]

repeat with

Hans Haesler
  
Beiträge gesamt: 5826

21. Okt 2016, 13:34
Beitrag # 11 von 11
Beitrag ID: #553428
Bewertung:
(3936 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo CodeBeginner,

bitte sehr. Und herzlich willkommen im AppleScript-Forum auf HDS! :-)

Falls mal ein anderes Problem auftritt: nur fragen!

Gruss, Hans


als Antwort auf: [#553412]
X