• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

[10.6 Snow Leopard] Automator-Dienst um Inhalt eines intelligenten Ordners als Textfile zu erhalten

Drexl

Alkmene
Registriert
13.02.08
Beiträge
33
Hallo Forum,

ich stehe auf dem Schlauch, wahrscheinlich weil Fortran77 die letzte Programmiersprache ist, die ich noch "richtig" gelernt habe...

Ich habe einen intelligenten Ordner (a.k.a. savedSearch) angelegt, dessen Inhalt ich regelmässig in Listenform benötige. Mir gefällt der Ansatz, einen Automator-Dienst anzulegen, der
1. die ausgewählten Finder-Objekte abfragt,
2. ein AppleScript ausführt, dass die Namen um den Pfad bereinigt
3. eine neue Textdatei auf den Desktop legt, in dem die Dateinamen untereinander stehen.

Die Lösung ist so nicht von mir, auch das Script fand ich so im Netz. Es sieht aus wie folgt:

on run {input, parameters}

set output to {}
repeat with i in input
tell application "Finder"
set end of output to the name of i
end tell
end repeat
return output

end run

Soweit, so gut. Allerdings bekomme ich alle Dateinamen zwei mal und ich sehe nicht, warum.

Spannender allerdings wird es, wenn ich andere Informationen als den Dateinamen auszulesen versuche. Ich dachte, die selbe Abfrage auch mit dem Änderungsdatum zu starten, in dem ich die die Zeile "set..." ersetze durch folgende:

set end of output to the short date string of (modification date of i)

So hängt sich der Dienst aber auf. Wo ist/sind der/die Haken?

Dankeschön!
 

sternenstaub

Echter Boikenapfel
Registriert
01.01.08
Beiträge
2.356
Um es mal im Sinne deiner Signatur zu versuchen (bin selber Fan von Saint Ex ;)

1. CMD-A aller Dateinamen in dem Ordner
2. CMD-V in TextWrangler, Excel oder wo deine Liste auftauchen soll
3. Speichern der so erstellten Liste>voila!

Kollegen benötigen ab- und zu solche Dateilisten von mir. Ich nehme dann die Ratzfatz-Methode .)
BTW. Das lässt sich auch mit Automator automatisieren.
 

sedna

Galloway Pepping
Registriert
22.10.08
Beiträge
1.359
Hallo,

ich sitze zwar gerade nicht an einem Mac, aber zumindest für das erste Problem hätte ich eine Idee...
Die Daten werden der Aktion "AppleScript ausführen" wohl doppelt übergeben. Das mag daran liegen, dass du eventuell "doppelt moppelst":
sofern der Dienst "ausgewählte Dateien -> in Finder" empfängt UND du zusätzlich die Aktion "Ausgewählte Finder-Objekte abfragen" in den Workflow eingefügt hast, so werden diese dann ja doppelt abgefragt....

Das Script selber hätte ich wohl etwas anders aufgebaut. Und zwar die Repeat Schleife in den Tell Block gepackt.... aber das hat nichts mit deinen Problemen zu tun.
Eine Datums-Abfrage allerdings sollte nicht der Finder machen. Das führt zu einem Fehler (ob das reicht, dass sich der Dienst aufhängt, kann ich von hier aus nicht beurteilen)

Also in etwa so (auf deinem Skript basierend)
--------------------------------
on run {input, parameters}

set output to {}
repeat with i in input
tell application "Finder"
set md to modification date of i
end tell
set end of output to short date string of md
end repeat
return output

end run
---------------------------

Da meldet sich aber eventuell noch eine andere gute Seele, die das am Mac verifizieren kann.
Was ich aber noch loswerden wollte:
Du könntest deinen Arbeitsfluss noch optimieren, indem du deinen Dienst alles erledigen lässt.
Dienst empfängt keine Eingabe
Aktion "Finder Objekte Suchen" (mit den Suchkriterien deines Intell. Ordners)
Eventuell Aktion "Finder Objekte sortieren"
Aktion "AppleScript ausführen"
Aktion "Neue Text Datei" (oder soähnlich)

Der Dienst taucht dann wohl nicht im Kontext-Menü auf, aber im Menü-Punkt "Dienste" und lässt sich in den Systemeinstellungen mit einem Shortcut versehen.
Oder du speicherst den Workflow gar nicht als Dienst, sondern als Programm....

Gruß
 

Drexl

Alkmene
Registriert
13.02.08
Beiträge
33
Guten Morgen zusammen,

@sternenstaub: ja, die Methode ist mir geläufig. Sie liefert mir aber leider auch nicht das Datum, jedenfalls nicht bei Einfügen in Excel. Ausserdem fände ich es schön, alles mit einem Rechtsklick erledigen zu können. Trotzdem Dank dafür.

@sedna: Dein Script muss ich mir mal im Detail ansehen. Einen Automator-Workflow (keinen Dienst), der auch das sortieren erledigt, hatte ich versucht. Allerdings bekomme ich auch damit nicht das Datum.

Offenbar werden andere Informationen als Pfad und Dateiname gar nicht an Automator übergeben, denn wenn ich in meiner Ausgangsidee das Script einfach raus nehme, bekomme ich eine Liste mit Pfaden und Dateinamen - ohne Datum. Wo kein Datum ist, kann kein Script der Welt ein Datum auslesen... es wird wohl deutlich komplizierter werden müssen.

Gruß, Drexl
 
Zuletzt bearbeitet:

sedna

Galloway Pepping
Registriert
22.10.08
Beiträge
1.359
Hallo,

hast du mein Script probiert?
Es sollte funktionieren und das Änderungsdatum ausspucken...

Und es werden übrigens nicht die reinen Pfade sondern dynamische Referenzen zu den Dateien übergeben (Zum gugeln: "applescript alias").
Hier im Script fragt dann der Finder im weiteren Verlauf angegebene Eigenschaften dieser Dateien ab: Name bzw. Änderungsdatum...
Du kannst auch beide Eigenschaften abfragen und getrennt durch space, return oder z.B. "_" in deinen Output schreiben...

Gruß
 
Zuletzt bearbeitet: