[GastForen Programmierung/Entwicklung AppleScript Ordner suchen und Pfad auslesen

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

Ordner suchen und Pfad auslesen

mb_new
Beiträge gesamt: 95

12. Mär 2014, 11:50
Beitrag # 1 von 9
Bewertung:
(6227 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
arbeite grad wieder an einem Script, welches ich in einen Automator Workflow einbauen will, scheitere aber an einer Sache:

Ich möchte mit einem Script einen Ordner auf einem Laufwerk suchen.
Und zwar soll das Script einen Ordner finden, der "PDF" enthält und den Pfad dorthin retournieren.
Die Ordner die gesucht werden, heissen aber immer ein wenig anders, also zb "HighresPDF", "Pdfs", Low"Pdf", ..

Ist das möglich?

Denn ich habs mit dem Automator probiert, doch der bleibt hängen, wenn ich auf dem Laufwerk mit "Ordner suchen" ans Werk gehe.

Danke
Martin
X

Ordner suchen und Pfad auslesen

mb_new
Beiträge gesamt: 95

13. Mär 2014, 13:25
Beitrag # 2 von 9
Beitrag ID: #524830
Bewertung:
(6179 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo nochmals,

ich bin schon ein wenig weiter:
Prinzipiell geht es darum, dass ich Daten auf einem Server archivieren will. Nur je nach Job heißen eben die Ordner (sind auf dem Archivserver fixangelegt) jeweils anders. Aber "Pdf" ist immer enthalten.

Das Ziel gebe ich über einen Dialog (viaAutomator) an.
In diesem Zielordner befindet sich der "Pdf" Ordner

Nun schaffe ich aus im Automator den Pfad zum Zielordner an ein AppleScript zu übergeben, doch ich weiß nicht, wie ich nun in diesem Ordner nach den "Pdf" Ordnern suche und dann den vollständigen Pfad (Zielrordner + "Pdf") wieder bekomme.

Meinem Verständis nach müsste es etwas in der Art sein:

every item of folder (mein Zielordner) whose name contains "Pdf"

Nur ich bekomms nicht hin.

Danke für Inputs

lg
martin


als Antwort auf: [#524780]

Ordner suchen und Pfad auslesen

Hans Haesler
  
Beiträge gesamt: 5796

13. Mär 2014, 17:50
Beitrag # 3 von 9
Beitrag ID: #524868
Bewertung:
(6152 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo mb_new,

wenn ich mit folgendem Script einen Zielordner auswähle ...

Code
set targetFolder to choose folder 

tell application "Finder"
every item of folder targetFolder whose name contains "Pdf"
end tell

... dann ist das Ergebnis eine Liste von Finderobjekten, welche alle im Namen die Buchstaben "pdf" aufweisen.

Und zwar sowohl Ordner als auch Dateien, welche sich in der ersten Ebene des gewählten Ordners befinden.

Um das Ergebnis auf Ordner zu beschränken, muss anstelle von item ganz einfach folder verwendet werden:

Code
set targetFolder to choose folder 

tell application "Finder"
every folder of folder targetFolder whose name contains "Pdf"
end tell

Gruss, Hans


als Antwort auf: [#524830]
(Dieser Beitrag wurde von Hans Haesler am 13. Mär 2014, 19:38 geändert)

Ordner suchen und Pfad auslesen

Hans Haesler
  
Beiträge gesamt: 5796

13. Mär 2014, 19:37
Beitrag # 4 von 9
Beitrag ID: #524874
Bewertung:
(6137 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo mb_new,

oder ... wenn Du nur eine Liste der Ordner-Namen bekommen möchtest ...

Code
set targetFolder to (choose folder) as Unicode text 

tell application "Finder"
name of every folder of folder targetFolder whose name contains "Pdf"
end tell

... weil targetFolder den Pfad des gewählten Ordners enthält.

Gruss, Hans


als Antwort auf: [#524868]

Ordner suchen und Pfad auslesen

mb_new
Beiträge gesamt: 95

14. Mär 2014, 10:53
Beitrag # 5 von 9
Beitrag ID: #524900
Bewertung:
(6098 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

danke wieder einmal für deine prompten Antworten und Lösungen.

Prinzipiell versteh ich das.
NUR: ich hab das ja in einen Automator Workflow eingebaut, und da bekomm ichs (wegen meiner bescheidenen Skriptkenntnisse) nicht hin, dass mir dann der gefundene Ordner als Pfad retourniert wird, sodass ich das als Variable setzen kann.

dh ich hab einmal eingebaut (input ist der Zielordner, der über einen Dialog ausgewählt wird):

Code
on run {input, parameters} 

set targetFolder to input

tell application "Finder"
every folder of folder targetFolder whose name contains "Test_Pdf"
end tell

end run




Danke schon mal
Martin


als Antwort auf: [#524874]

Ordner suchen und Pfad auslesen

Hans Haesler
  
Beiträge gesamt: 5796

14. Mär 2014, 12:42
Beitrag # 6 von 9
Beitrag ID: #524913
Bewertung:
(6080 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

bitte sehr.

Ich bin unterwegs und kann Dir deshalb erst heute Abend behilflich sein.
Immer in der Hoffnung, dass mir jemand zuvorkommt. :-)

Gruss, Hans


als Antwort auf: [#524900]

Ordner suchen und Pfad auslesen

mb_new
Beiträge gesamt: 95

14. Mär 2014, 15:04
Beitrag # 7 von 9
Beitrag ID: #524927
Bewertung:
(6060 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,
durch try & error bin ich ein wenig weiter.

Code
on run {input, parameters} 

tell application "Finder"
set targetFolder to item 1 of input
set Foldername to every folder of folder targetFolder whose name contains "LowRes" as string
set thePath to POSIX path of ":" & (Foldername)
end tell
return thePath

end run


Ich bekomm den Pfad retour, allerdings nur, wenn ich irgendetwas davor (in diesem Fall ":") hinschreibe.

Allerdings kommt der Pad dann so raus:
/Macintosh HD:Users:username:Desktop:HK_:LowRes_Pdf:

Ich glaub ich bin der Lösung nahe, doch es hakt noch.

Danke
Martin


als Antwort auf: [#524913]

Ordner suchen und Pfad auslesen

Hans Haesler
  
Beiträge gesamt: 5796

14. Mär 2014, 19:15
Beitrag # 8 von 9
Beitrag ID: #524939
Bewertung:
(5994 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

brauchst Du den Pfad in POSIX-Schreibweise? Falls ja, werden wir später darauf zurückkommen.

Zunächst die Erklärung des Ergebnisses von 'every folder', welches man so bekommt:

Code
tell application "Finder" 
set folderList to every folder of folder targetFolder whose name contains "LowRes"
end tell

Das ergibt eine Liste von "Finder"-Objekten. Jedes Element der Liste sieht ungefähr so aus:

Code
{folder "LowRes_Pdf" of folder "HK_" of folder "Desktop" of folder "username" of ¬ 
folder "Users" of startup disk of application "Finder"}


Dieses erste Element kann man so in einen HFS-Pfad verwandeln:

Code
set folderPath to item 1 of folderList as Unicode text 

Und das kommt dabei heraus:

Code
"Macintosh HD:Users:username:Desktop:HK_:LowRes_Pdf:" 

Dein letztes Snippet entsprechend abgeändert:

Code
on run {input, parameters} 

tell application "Finder"
set targetFolder to item 1 of input
set folderList to every folder of folder targetFolder whose name contains "LowRes"
end tell
return item 1 of folderList as Unicode text

end run

Aber auf diese Weise wird nur ein Ordner zurückgegeben. Wenn mehrere vorhanden sind, dann werden die weiteren nicht beachtet.

Würdest Du bitte eine Outline der Aktion posten? Eine Aufzählung der Schritte, damit klar wird, was geschehen soll.

Gruss, Hans


als Antwort auf: [#524927]
(Dieser Beitrag wurde von Hans Haesler am 15. Mär 2014, 15:08 geändert)

Ordner suchen und Pfad auslesen

mb_new
Beiträge gesamt: 95

18. Mär 2014, 10:52
Beitrag # 9 von 9
Beitrag ID: #525024
Bewertung:
(5852 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hans,

was soll ich sagen: PERFEKT.
Danke, mit deinem Input läuft das Ding einwandfrei. Einzig, dass ich das in POSIX gebraucht habe (anscheinend will das der Server auf dem ich das ausführe so) klappt das mit deiner Lösung wunderbar.
Dass aus der Liste nur das erste Element retourniert wird, macht ncihts, da es immer nur einen entsprechenden Ordner in der Struktur gibt, den ich finden muss.

Herzlichen Dank
Martin


als Antwort auf: [#524939]
X

Aktuell

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
21.01.2021 - 22.01.2021

Digicomp Academy AG, Bern oder Basel
Donnerstag, 21. Jan. 2021, 08.30 Uhr - Freitag, 22. Jan. 2021, 17.00 Uhr

Kurs

Dieser Basic-Kurs ist der perfekte Einstieg in die Welt von InDesign, dem vielseitigen Layout-Programm. Sie lernen, wie InDesign aufgebaut ist, wie saubere Dokumente erstellt werden und wie man korrekt mit gelieferten InDesign-Projekten umgeht.

Dauer: 2 Tage
Preis: CHF 1'400.–

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/INDEM1

Veranstaltungen
21.01.2021

Illustrator - das unbekannte Wesen

Online
Donnerstag, 21. Jan. 2021, 19.00 Uhr

Vortrag

Millionen Funktionen, und immer kommen neue dazu! Monika Gause ist jeden Januar aufs Neue ein gern gesehener Gast bei der IDUG Stuttgart. - Sie bringt alle Neuerungen mit, die 2020 dazukamen und jede Menge Tipps und Tricks. - Zudem wird sie uns informieren, was wir in Illustrator beachten müssen, wenn wir Daten fürs Web erstellen bzw. aufbereiten. - Wichtig zu wissen: "Dos and Don'ts" in Illustrator. Welche Fehler sollte man dringend vermeiden und was muss man unbedingt tun, damit es Spaß macht mit Illustrator zu arbeiten. - Dieses Jahr hast Du zusätzlich die Möglichkeit Monika im Voraus Fragen zu stellen. Fülle dieses Formular mit deinen Fragen; auch Beispieldateien sind anfügbar: https://forms.gle/fJmF8C6MjbDoEhED8

Nein

Organisator: InDesign Usergroup Stuttgart

Kontaktinformation: Christoph Steffens, E-Mailidug AT satzkiste DOT de

https://idugs67.eventbrite.de/

IDUGS #67 Illustrator mit Monika Gause

Neuste Foreneinträge


CC 2020: Problem mit Textumfluss mit verankerten Objekten

Affinity Photo od. Designer -Bildecke einrollen

Abrisse im Druck

Farbmanagement bei Fotoabzügen

Dokument einrichten per Javascript [AI24.3, WIN10]

Problem mit arabischer Schrift: Wie von rechts nach links setzen?

Suchen u. Ersetzen von Strings mit bestimmter horizontaler Skalierung [INDD15.1.1 WIN10]

Netzwerklaufwerke verbinden -> Bei nicht verfügbar Fehlermeldung unterdrücken

Fortlaufende Nummerierung der Druckbogen

Verschiedene Netzwerke Handeln
medienjobs