[GastForen Programmierung/Entwicklung AppleScript Dateien markieren - auch in Unterordnern des offenen Ordners

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

Dateien markieren - auch in Unterordnern des offenen Ordners

ehwda
Beiträge gesamt: 66

25. Aug 2014, 16:21
Beitrag # 1 von 22
Bewertung:
(6174 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich suche ein Script, um Dateien im aktuellen Ordner zu markieren durch Eingabe beliebiger Zeichen, die im Dateinamen vorhanden sind. Plus der Möglichkeit auch Unterordner einzubeziehen.
Mit buttons "Abbruch", "Ok", "+Unterordner (was gleichzeitig auch ein OK auslöst)".

Weiss jemand, wie das funktionieren könnte?

Gruss, Eugen
X

Dateien markieren - auch in Unterordnern des offenen Ordners

Hans Haesler
  
Beiträge gesamt: 5797

25. Aug 2014, 17:33
Beitrag # 2 von 22
Beitrag ID: #531415
Bewertung:
(6095 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Eugen,

würdest Du bitte ein konkretes Beispiel posten?
– So lautet eine typische Eingabe: ___________
– Damit werden diese Dateinamen gefunden: ____________

Was meinst Du mit "markieren"? Auswählen? Oder einfärben?

Gruss, Hans


als Antwort auf: [#531412]

Dateien markieren - auch in Unterordnern des offenen Ordners

ehwda
Beiträge gesamt: 66

26. Aug 2014, 08:38
Beitrag # 3 von 22
Beitrag ID: #531422
Bewertung:
(6044 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

gestern Nacht (kurz vor dem Einschlafen) ist mir eingefallen, dass ich mich wohl missverständlich ausgedrückt habe. Gemeint habe ich Auswählen!
Und dann kam die Idee, dass Markieren bzw. Einfärben auch brauchbar wäre.
Also Auswählen ist mir wichtiger. Aber ein Einfärben-Script wäre zusätzlich willkommen.

Als Beispiel:
Habe jede Menge buntgemischte Dateien . . .

ASIST Piques P1210426.JPG
ASIST Piques P1210426.tif
ASIST Präsidentin.jpg
aspekte Titel
ASS_Logo_300dpi.jpg
ASS_Logo_300dpi.tif
bfu AndreasJuli08.tif
bfu_DE
Bigorio Logo.tif
bpa_FR
bpa.tif
bul Logo 2010 klein.tif

und möchte nun alle auswählen, in deren Namen die Zeichen "ASS" oder "Logo" oder "300" oder "tif" enthalten sind. Das ginge ja mithilfe eines Scripts schneller als von Hand.

Danke für deinen Input.

Gruss, Eugen


als Antwort auf: [#531415]

Dateien markieren - auch in Unterordnern des offenen Ordners

Hans Haesler
  
Beiträge gesamt: 5797

26. Aug 2014, 08:53
Beitrag # 4 von 22
Beitrag ID: #531423
Bewertung:
(6040 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Eugen,

wie würdest Du denn die vier Zeichenfolgen eingeben?

Beim Etikettieren könnte das Script vier Mal gestartet werden.
Aber zum Auswählen der Dateien hat man nur einen Lauf.

Eine Möglichkeit: Die Zeichenfolgen mit einem Strichpunkt trennen.

Doch: Was soll denn mit den gefundenen Dateien geschehen?
Meistens ist eine Auswahl der Objekte nicht notwendig.
Zum Beispiel, wenn sie in einen anderen Ordner verschoben werden sollten.

Gruss, Hans


als Antwort auf: [#531422]

Dateien markieren - auch in Unterordnern des offenen Ordners

kkauer
Beiträge gesamt: 661

26. Aug 2014, 10:08
Beitrag # 5 von 22
Beitrag ID: #531425
Bewertung:
(6004 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ ehwda ] und möchte nun alle auswählen, in deren Namen die Zeichen "ASS" oder "Logo" oder "300" oder "tif" enthalten sind. Das ginge ja mithilfe eines Scripts schneller als von Hand.

Wäre die Suchfunktion/Spotlight im Finder hiefür nicht die einfachere und ggf. auch flexiblere Option?


als Antwort auf: [#531422]
(Dieser Beitrag wurde von kkauer am 26. Aug 2014, 10:10 geändert)

Dateien markieren - auch in Unterordnern des offenen Ordners

ehwda
Beiträge gesamt: 66

26. Aug 2014, 16:04
Beitrag # 6 von 22
Beitrag ID: #531445
Bewertung:
(5939 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans

Ich möchte nicht mehrere Zeichenfolgen auf einmal eingeben, sondern nur immer eine, z.B. "bl" für alle Dateinamen des aktuellen Ordners (und evtl. Unterordners) in denen die Buchstaben "bl" enthalten sind.

Was soll mit den Dateien dann geschehen? - Nun, jenachdem was gerade ansteht, z.B. grau einfärben, mit cmd ← in den Papierkorb befördern oder in einen anderen Ordner ziehen usw.
Natürlich könnte man für jede Aktion ein Script erstellen, aber das halte ich für unnötig.

Spotlight ist nicht gerade mein Favorit.

Gruss, Eugen


als Antwort auf: [#531423]

Dateien markieren - auch in Unterordnern des offenen Ordners

kkauer
Beiträge gesamt: 661

26. Aug 2014, 16:32
Beitrag # 7 von 22
Beitrag ID: #531449
Bewertung:
(5927 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ ehwda ] Spotlight ist nicht gerade mein Favorit.

OK, aber alle von dir genannten Beispiele wären damit problemlos umzusetzen …


als Antwort auf: [#531445]

Dateien markieren - auch in Unterordnern des offenen Ordners

Hans Haesler
  
Beiträge gesamt: 5797

26. Aug 2014, 16:43
Beitrag # 8 von 22
Beitrag ID: #531452
Bewertung:
(5919 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Eugen,

hier eine erste Version:

Code
(* 
DateienMarkieren_01d.app
Dieses Script markiert Dateien, deren Name bestimmte Zeichen enthalten
© 26.08.14 / Hans Haesler, Châtelard 52, CH-1018 Lausanne
*)

-- den Hauptordner wählen
set sourceFolder to (choose folder) as Unicode text

-- den Anwender auffordern, die Zeichenfolge einzugeben
set dialogResult to display dialog "Zeichenfolge eingeben" default answer "" buttons ¬
{"Abbrechen", "OK", "+Unterordner"} default button 2

-- die Eingabe prüfen
set curString to text returned of dialogResult
if (count of curString) is 0 then
display dialog "Die Eingabe ist leer. Bitte nochmals." buttons "OK" default button 1 with icon 0
error number -128
end if

-- wenn "OK", dann die Dateien im Hauptordner
if button returned of dialogResult is "OK" then
tell application "Finder" to set selFiles to ¬
(every file whose name contains curString) of folder sourceFolder
-- sonst auch die Dateien in den Unterordnern
else if button returned of dialogResult is "+Unterordner" then
-- die Namen der Unterordner auflisten
tell application "Finder" to set subFolders to name of every folder of folder sourceFolder
-- eine Liste initialisieren
set selFiles to {}
-- schon mal die Dateien des Hauptordners an die Liste hängen
tell application "Finder" to set end of selFiles to ¬
(every file whose name contains curString) of folder sourceFolder
-- eine Schleife durch die Unterordner
repeat with n from 1 to count of subFolders
set curFolder to (item n of subFolders)
tell application "Finder" to set end of selFiles to ¬
(every file whose name contains curString) of folder curFolder of folder sourceFolder
end repeat
end if

-- die Dateien auswählen
tell application "Finder" to select selFiles

Der Dialog zum Auswählen des Hauptordners kommt, weil es mir nicht gelungen ist, den geöffneten Ordner zu identifizieren.
Einfacher wäre, das Script in ein Droplet zu verwandeln.

Ein zweites Problem: Das Ergebnis ist eine Liste von "document files". Bei jedem ist der Pfad angegeben. Der Finder kann diese Liste zum Auswählen benutzen. Aber das Zuweisen eines Etiketts gelingt mir nicht. Da muss einer ran, welcher die entsprechenden Kenntnisse hat.

Das dritte Problem: Jeder Unterordner wird separat geöffnet. Aber die Dateien sind wenigstens ausgewählt.

Gruss, Hans


als Antwort auf: [#531445]

Dateien markieren - auch in Unterordnern des offenen Ordners

kkauer
Beiträge gesamt: 661

26. Aug 2014, 17:44
Beitrag # 9 von 22
Beitrag ID: #531456
Bewertung:
(5888 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

wo genau liegt denn dein Problem mit den Labels/Tags? Eventuell an den Listen in der Liste?

Mir ist auch nicht ganz klar, ob diese Einschränkung auf eine Ebene der Unterordner gewollt/gewünscht ist. Falls nicht könntest du "entire contents" wählen und dann sollte auch das Etikettieren mit "label index" direkt funktionieren.


als Antwort auf: [#531452]

Dateien markieren - auch in Unterordnern des offenen Ordners

Hans Haesler
  
Beiträge gesamt: 5797

26. Aug 2014, 19:33
Beitrag # 10 von 22
Beitrag ID: #531460
Bewertung:
(5853 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Karsten,

wenn man beim Ausführen des Scripts auf "OK" klickt, dann werden nur die Dateien des Hauptordners erfasst. Das Ergebnis ist eine einzige Liste.
Aber dennoch klappt es mit dem Zuweisen des Etiketts nicht, wenn man die letzte Zeile durch diese ersetzt:

Code
tell application "Finder" to set label index of selFiles to 2 

Das Verwenden von 'entire contents' hatte ich bewusst vermieden, weil es früher grosse Probleme damit gab. Das ist zwar schon lange her, aber es erinnert mich immer daran, wie sich ein Entwickler von Apple in die Nesseln setzte und Häme und Spott erntete, als er bei seim ersten Posting an die "AppleScript-Users mailing list" genau dieses 'entire contents' empfahl.

Doch weil hier diese ganzen Inhalte eines einzigen Ordner – und hoffentlich nicht der ganzen Harddisk – verlangt werden, sollte es keine Probleme geben:

Code
(* 
DateienMarkieren_02d.app
Dieses Script markiert Dateien, deren Name bestimmte Zeichen enthalten
© 26.08.14 / Hans Haesler, Châtelard 52, CH-1018 Lausanne
*)

-- den Hauptordner wählen
set sourceFolder to (choose folder) as Unicode text

-- den Anwender auffordern, die Zeichenfolge einzugeben
set dialogResult to display dialog "Zeichenfolge eingeben" default answer "" buttons ¬
{"Abbrechen", "OK", "+Unterordner"} default button 2

-- die Eingabe prüfen
set curString to text returned of dialogResult
if (count of curString) is 0 then
display dialog "Die Eingabe ist leer. Bitte nochmals." buttons "OK" default button 1 with icon 0
error number -128
end if

-- wenn "OK", dann die Dateien im Hauptordner
if button returned of dialogResult is "OK" then
tell application "Finder" to set selFiles to ¬
(every file whose name contains curString) of folder sourceFolder
-- sonst auch die Dateien in den Unterordnern
else if button returned of dialogResult is "+Unterordner" then
tell application "Finder" to set selFiles to ¬
(every file whose name contains curString) of entire contents of folder sourceFolder
end if

-- die Dateien auswählen
tell application "Finder" to select selFiles

Das Ergebnis ist eine einzige Liste (und nicht mehr Listen in einer Liste). Aber überlassen wir es Eugen, was er einsetzen wird.

Gruss, Hans


als Antwort auf: [#531456]

Dateien markieren - auch in Unterordnern des offenen Ordners

kkauer
Beiträge gesamt: 661

26. Aug 2014, 20:09
Beitrag # 11 von 22
Beitrag ID: #531462
Bewertung:
(5838 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Hans Haesler ] Hallo Karsten,

wenn man beim Ausführen des Scripts auf "OK" klickt, dann werden nur die Dateien des Hauptordners erfasst. Das Ergebnis ist eine einzige Liste.
Aber dennoch klappt es mit dem Zuweisen des Etiketts nicht, wenn man die letzte Zeile durch diese ersetzt:

Code
tell application "Finder" to set label index of selFiles to 2 



Dass das nicht klappt ist doch aber (eigentlich?) klar: "label index" braucht ein file/alias, also einmal durch die Liste iterieren und das wär’s, oder?


als Antwort auf: [#531460]

Dateien markieren - auch in Unterordnern des offenen Ordners

kkauer
Beiträge gesamt: 661

26. Aug 2014, 20:26
Beitrag # 12 von 22
Beitrag ID: #531463
Bewertung:
(5828 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Hans Haesler ] Das Verwenden von 'entire contents' hatte ich bewusst vermieden, weil es früher grosse Probleme damit gab. Das ist zwar schon lange her, aber es erinnert mich immer daran, wie sich ein Entwickler von Apple in die Nesseln setzte und Häme und Spott erntete, als er bei seim ersten Posting an die "AppleScript-Users mailing list" genau dieses 'entire contents' empfahl.

Doch weil hier diese ganzen Inhalte eines einzigen Ordner – und hoffentlich nicht der ganzen Harddisk – verlangt werden, sollte es keine Probleme geben:


Früher war das oder gar alles aus Holz! ;)

AppleScript ist ja nun auch nicht mehr das, was es mal war und ein rekursives Suchen nach Dateinamen sollte eigentlich problemlos machbar sein. ABER: wir adressieren ja den Finder und dieser war, ist und bleibt (wahrscheinlich) immer eine ganz besondere "Herausforderung" ;)


als Antwort auf: [#531460]

Dateien markieren - auch in Unterordnern des offenen Ordners

Hans Haesler
  
Beiträge gesamt: 5797

26. Aug 2014, 20:33
Beitrag # 13 von 22
Beitrag ID: #531464
Bewertung:
(5825 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Karsten,

das hatte ich auch versucht. Aber es wollte nicht klappen.
Warum kann ich nicht sagen. Denn jetzt, bei einem erneuten Versuch geht es.
Also: Danke für Dein Nachhaken. :-)

@ Eugen: Wenn Etikettieren statt Auswählen gefragt ist: die letzte Zeile auskommentieren und Folgendes anfügen:

Code
-- ... oder etikettieren 
repeat with m from 1 to count of selFiles
tell application "Finder" to set label index of item m of selFiles to 2
end repeat

Möglich ist natürlich beides: Sowohl auswählen als auch einfärben. Dann muss die Zeile nicht auskommentiert werden.

Gruss, Hans


als Antwort auf: [#531462]

Dateien markieren - auch in Unterordnern des offenen Ordners

kkauer
Beiträge gesamt: 661

26. Aug 2014, 20:52
Beitrag # 14 von 22
Beitrag ID: #531466
Bewertung:
(5808 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Hans Haesler ] Also: Danke für Dein Nachhaken. :-)

Gerne, und gleich noch einmal ;)
Warum zählst du hoch ("count of") und warum nicht den tell-Block außerhalb der Schleife?


als Antwort auf: [#531464]

Dateien markieren - auch in Unterordnern des offenen Ordners

Hans Haesler
  
Beiträge gesamt: 5797

26. Aug 2014, 22:07
Beitrag # 15 von 22
Beitrag ID: #531467
Bewertung:
(5774 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Karsten,

die Elemente werden nur einmal gezählt. Aber es könnte sein, dass eine sehr grosse Anzahl
die Ausführung spürbar bremst. Abhilfe: ein my einfügen (... my selFiles ...):

Code
repeat with m from 1 to count of selFiles 
tell application "Finder" to set label index of item m of my selFiles to 2
end repeat

Der tell-Block ist innerhalb der Schleife, damit der "Finder"-Befehl ein Einzeiler ist.
War früher einmal sehr wichtig. Habe ich so beibehalten.

Gruss, Hans


als Antwort auf: [#531466]
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
25.01.2021 - 26.01.2021

Digicomp Academy AG, Bern oder Zürich
Montag, 25. Jan. 2021, 08.30 Uhr - Dienstag, 26. Jan. 2021, 17.00 Uhr

Kurs

In diesem Basic-Kurs lernen Sie das Wichtigste über den Aufbau und die Funktionsweise von Photoshop. Zusammen mit den notwendigen Grundlagen von Farbenlehre bis Bildauflösung lernen Sie zudem die kreativen Möglichkeiten von Photoshop kennen.

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

Ja

Organisator: Digicomp Academy AG

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

digicomp.ch/d/PHOTM1

Veranstaltungen
25.01.2021 - 26.01.2021

Digicomp Academy AG, Zürich oder virtuell
Montag, 25. Jan. 2021, 08.30 Uhr - Dienstag, 26. Jan. 2021, 17.00 Uhr

Kurs

Im Kurs lernen Sie die Schritte vom Import des Rohmaterials bis zum fertig exportierten Clip kennen. Dazu zählen die Materialverwaltung, das Trimmen für Roh- und Feinschnitt, Blenden, Titel und Effekte und eine Übersicht über die wichtigsten Formate.

Preis: CHF 1'700.-
Dauer: 2 Tage

Ja

Organisator: Digicomp Academy AG

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

digicomp.ch/d/AP6

Neuste Foreneinträge


Gleich Große Icons erstellen

PSD CS6 (!) Mac: Dialog "Dateiinformationen" Fenster leer und Sackgasse

Inhalt Textrahmen verbinden

iPhone Farbprofil

Exel ohne leeres Tabellenblatt starten

Text- oder Grafikrahmen nach Position und Größe suchen und ändern

Illustrator Skript Übersatztext - Hilfe benötigt

[GREP] beliebige Zeichen finden und durch selbe Anzahl an Leerzeichen oder Anzahl Zeichen "x" ersetzen

InDesign 2021 – Suchen/Ersetzen: Farbe

Langsamer MacMini
medienjobs