[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:
(7431 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: 5826

25. Aug 2014, 17:33
Beitrag # 2 von 22
Beitrag ID: #531415
Bewertung:
(7352 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:
(7301 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: 5826

26. Aug 2014, 08:53
Beitrag # 4 von 22
Beitrag ID: #531423
Bewertung:
(7297 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:
(7261 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:
(7196 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:
(7184 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: 5826

26. Aug 2014, 16:43
Beitrag # 8 von 22
Beitrag ID: #531452
Bewertung:
(7176 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:
(7145 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: 5826

26. Aug 2014, 19:33
Beitrag # 10 von 22
Beitrag ID: #531460
Bewertung:
(7110 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:
(7095 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:
(7085 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: 5826

26. Aug 2014, 20:33
Beitrag # 13 von 22
Beitrag ID: #531464
Bewertung:
(7082 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:
(7065 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: 5826

26. Aug 2014, 22:07
Beitrag # 15 von 22
Beitrag ID: #531467
Bewertung:
(7031 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

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
14.05.2024

Online
Dienstag, 14. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Prozessoptimierung ist ein Teamsport! Keine Software und keine Maschine allein kann Ihnen helfen, die Effizienzpotenziale Ihres Betriebes maximal auszuschöpfen. Von der Auftragsannahme über die Vorstufe und den Druck bis hin zur Weiterverarbeitung – alles muss optimal ineinandergreifen. Apropos Weiterverarbeitung – in vielen Druckbetrieben fristet sie in Sachen Prozessoptimierung immer noch ein Schattendasein. Dabei liegen hier mittlerweile die größten Einsparpotenziale! In einem Webinar von Horizon und Impressed erfahren Sie, wie Sie diese Einsparungen realisieren können. Horizon, bekannt für innovative Lösungen in der Druckweiterverarbeitung, bietet mit iCE LiNK eine Workflowlösung für die Weiterverarbeitung. iCE LiNK überwacht, visualisiert und analysiert Produktionsabläufe und unterstützt bei der Wartung – damit immer alles reibungslos läuft. Den gleichen Anspruch hat der von Impressed entwickelte Impressed Workflow Server – er ist die smarte PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt. Im Webinar zeigen Ihnen die Experten von Horizon und Impressed, wie beide Lösungen im Team die Effizienz und Produktivität Ihres Betriebes steigern können. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Horizon

https://www.impressed.de/schulung.php?c=sDetail&sid=327

Einsparpotenziale in der Weiterverarbeitung
Veranstaltungen
16.05.2024

Online
Donnerstag, 16. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Nein

Organisator: Impressed / Günther Business Solutions

https://www.impressed.de/schulung.php?c=sDetail&sid=326

Und es geht doch: Automatisierung im Großformatdruck!