[GastForen Programmierung/Entwicklung AppleScript Daten im Finder verschieben

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

Daten im Finder verschieben

Anonym
Beiträge gesamt: 22827

17. Apr 2007, 13:56
Beitrag # 1 von 5
Bewertung:
(1649 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo liebe scripter :-)

unzwar möchte ich Daten die in einen Hotfolder kopiert werden per AppleScript verschieben aber das ganze abwechselnd in 2 Ordner um so die Daten aufzusplitten und die Arbeit auf mehrere Rechner zu verteilen


also zb in den "Eingang" werden 10 Datein kopiert und das script geht her schiebt das erste in Ordner X das zweite dann in Ordner Y das dritte dann wieder in X das vierte dann wieder in Y usw usw so das am ende praktisch in jedem Ordner 5 Datein liegen.

Ich habe schon mal einen teil des scfripts erstellt nur weiß ich nicht weiter da ich nicht weiß wie man das splitten kann


Code
property eingang : "Daten:Test:Eingang:" 
property Ordnerx : "Daten:Test:1:"
property Ordnery : "Daten:Test:2:"


on idle



set watchlist to (list folder eingang)
try
repeat with x in watchlist
set watchfile to eingang & ":" & x
if x does not start with "." then
verschieben(watchfile)
end if
end repeat
end try



return
end idle



on verschieben(x)
tell application "Finder"
move document file x to folder Ordnerx
end tell
end verschieben

X

Daten im Finder verschieben

Hans Haesler
  
Beiträge gesamt: 5826

17. Apr 2007, 20:50
Beitrag # 2 von 5
Beitrag ID: #421681
Bewertung:
(1648 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Yoschi,

anstelle von repeat with x in watchlist diese Form benutzen:
---
repeat with i from 1 to count of watchlist by 2
---
Also den automatischen Zähler i, welcher mit by 2 jede zweite Datei nimmt.
Die erste, die dritte, die fünfte usw.

Damit auch die geraden Elemente der Liste verschoben werden, muss in der
Schleife eine zweite Zuordnung mit item (i + 1) of watchlist gemacht werden.
Die beiden try-Wickel sind notwendig, falls die Rechnung am Schluss der
Schleife nicht aufgeht und ein nicht vorhandenes Element adressiert wird.

Übrigens: Hat Dein Script funktioniert und Dateien verschoben? Ich musste
zuerst im Befehl set watchfile to eingang & ":" & x den Doppelpunkt entfernen.

Zudem habe ich noch verschiedene Änderungen gemacht:
– Das Behandeln der Dateien aus dem idle-Handler herausgenommen.
Nur der Aufruf des listFiles-Handlers und ein return 5 sind noch drin
(alle fünf Sekunden wird die Liste erstellt und abgearbeitet).
– Beim Auflisten des Ordnerinhalts den Zusatz without invisibles angefügt
(damit entfällt der Test if x does not start with ".")
– Den Verschieben-Befehl in eine einzelne Zeile verwandelt.
– Einen try-Wickel darumgelegt.
with replacing angefügt, damit gleichnamige Dateien überschrieben werden.

---
property eingang : "Daten:Test:Eingang:"
property Ordnerx : "Daten:Test:1:"
property Ordnery : "Daten:Test:2:"

on idle
   listFiles()
   return 5
end idle

on listFiles()
   set watchlist to list folder eingang without invisibles
   try
      repeat with i from 1 to count of watchlist by 2
         try
            set watchfile1 to eingang & item i of watchlist
            verschieben(watchfile1, Ordnerx)
         end try
         try
            set watchfile2 to eingang & item (i + 1) of watchlist
            verschieben(watchfile2, Ordnery)
         end try
      end repeat
   end try
end listFiles

on verschieben(x, z)
   try
      tell application "Finder" to move file x to folder z with replacing
   end try
end verschieben
---

Gruss, Hans


als Antwort auf: [#421680]

Daten im Finder verschieben

Anonym
Beiträge gesamt: 22827

18. Apr 2007, 07:19
Beitrag # 3 von 5
Beitrag ID: #421682
Bewertung:
(1648 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen dank für deine hilfe das ganze funktioniert so weit auch schon

nur ist es immoment so das die Datein ja nur verteilt werden wenn ich sie gleichzeitig im Eingang landen.

Ist es auch möglich das das ganze funktioniert wenn ich eine Datei reinschiebe das die dann in den ersten Ordner verschoben wird und sobald die nächste reingeschoben wird kommt diese dann in den zweiten ordner usw usw
ich hoffe du verstehst wie ich das meine.....



Gruss Yoschi


als Antwort auf: [#421680]

Daten im Finder verschieben

Hans Haesler
  
Beiträge gesamt: 5826

18. Apr 2007, 08:23
Beitrag # 4 von 5
Beitrag ID: #421683
Bewertung:
(1648 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Yoschi,

ja, ich verstehe, wie Du das meinst. Aber ob man dies auch dem Script
beibringen kann?
---
property counter : 0
property eingang : "Daten:Test:Eingang:"
property Ordnerx : "Daten:Test:1:"
property Ordnery : "Daten:Test:2:"

on idle
   listFiles()
   return 5
end idle

on listFiles()
   set watchlist to list folder eingang without invisibles
   set itemCount to count of watchlist
   if itemCount is greater than 0 then
      repeat with i from 1 to count of watchlist
         try
            set watchfile to eingang & item i of watchlist
            verschieben(watchfile)
         end try
      end repeat
   end if
end listFiles

on verschieben(x)
   if counter mod 2 is 0 then
      try
         tell application "Finder" to move file x to folder Ordnerx with replacing
         set counter to counter + 1
      end try
   else
      try
         tell application "Finder" to move file x to folder Ordnery with replacing
         set counter to counter + 1
      end try
   end if
end verschieben
---
Die Wiederholungsschleife wird nicht mehr mit einem Doppelschritt ausgeführt,
sondern "normal". Dafür wird im Handler verschieben bei jedem Aufruf die
neue property counter  mit mod 2 dividiert. Der Restwert ist entweder 0 oder 1.

Je nach Ergebnis wird die Datei in den ersten oder in den zweiten Ordner
verschoben. In beiden Fällen wird die Zählervariable um eins erhöht.

Gruss, Hans


als Antwort auf: [#421680]

Daten im Finder verschieben

Anonym
Beiträge gesamt: 22827

24. Apr 2007, 12:32
Beitrag # 5 von 5
Beitrag ID: #421684
Bewertung:
(1648 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Sorry für diese späte antwort in meinen Gedanken war der Beitrag schon geschrieben :-)

Das script läuft wie immer zu 100% perfekt :-)



Vielen dank noch mal an dieser stelle Hans

Gruß Yoschi


als Antwort auf: [#421680]
X