[GastForen Programmierung/Entwicklung AppleScript Dateiliste | Dateinamen in eine Liste schreiben

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

Dateiliste | Dateinamen in eine Liste schreiben

pjoern
Beiträge gesamt: 110

11. Sep 2012, 13:11
Beitrag # 1 von 9
Bewertung:
(7799 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo liebe Helfer,

ich möchte gerne folgende, manuelle Arbeit verscripten.

Dateiliste mit Dateinamen erstellen:

In einem Ordner liegen ca. 3.000 PSD-Grafiken. Um daraus eine "Dateiliste" im txt-Fotmat zu erstellen, öffne ich den Ordner, selektiere alle Dateien und drücke "cmd" + "C". Danach öffne ich ein leeres/neues Fenster in TextMate und drücke "cmd" + "V".

Das funktioniert problemlos und sehr schnell.

--

Eine "Automatisierung" dieser Schritte bekomme ich bisher nur via repeat-Schleife hin:

Code
set Bildordner to choose folder 
set Dateiliste to {}

tell application "Finder"
set Bildliste to every file of folder Bildordner
repeat with akt_Bild in Bildliste
set akt_Bildname to name of akt_Bild
set end of Dateiliste to akt_Bildname
end repeat
end tell

get Dateiliste


Das funktioniert zwar, nur DAUERT DAS SEHR LANGE :(
--
Kann mir jemand helfen, den Weg via copy & paste zu verscripten?

Vielen Dank für Eure Hilfe
pjoern

(Dieser Beitrag wurde von pjoern am 11. Sep 2012, 14:13 geändert)
X

Dateiliste | Dateinamen in eine Liste schreiben

Hans Haesler
  
Beiträge gesamt: 5826

11. Sep 2012, 14:05
Beitrag # 2 von 9
Beitrag ID: #500696
Bewertung:
(7776 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo pjoern,

welcome back! :-)

Ich kann nicht vor morgen Abend getesteten Code posten.
Hoffentlich kommt mir jemand zuvor!

Nur soviel: 'entire contents' scheint mir nicht notwendig zu sein.

Gruss, Hans


als Antwort auf: [#500690]

Dateiliste | Dateinamen in eine Liste schreiben

pjoern
Beiträge gesamt: 110

11. Sep 2012, 14:14
Beitrag # 3 von 9
Beitrag ID: #500698
Bewertung:
(7766 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

vielen Dank für die nette Begrüßung :)

"entire contents" habe ich jetzt aus dem "Beispielcode" entfernt. :)

Liebe Grüße
pjoern


als Antwort auf: [#500696]

Dateiliste | Dateinamen in eine Liste schreiben

Hans Haesler
  
Beiträge gesamt: 5826

11. Sep 2012, 16:20
Beitrag # 4 von 9
Beitrag ID: #500707
Bewertung:
(7722 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo pjoern,

füge bitte mal das Wörtchen my ein (vor akt_Bild). Das sollte das Durchlaufen der Schleife beschleunigen:

Code
tell application "Finder" 
repeat with akt_Bild in Bildliste
set end of Dateiliste to name of my akt_Bild
end repeat
end tell

Doch sehr wahrscheinlich kannst Du auf den "Finder" verzichten und die Namen direkt holen:

Code
set Dateiliste to list folder Bildordner 

Wie gesagt: nicht getestet.

Gruss, Hans


als Antwort auf: [#500698]

Dateiliste | Dateinamen in eine Liste schreiben

-hans-
Beiträge gesamt: 748

11. Sep 2012, 16:20
Beitrag # 5 von 9
Beitrag ID: #500708
Bewertung:
(7721 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Huch, sorry ... (aber immerhin kein Javascript ;-))

Hi,

da habe ich extra meinen Tiger nochmal eingeschaltet. Startet tatsächlich noch wie ne eins :)

Wie gesagt, unter Tiger läuft es, lion muesste ich nachher mal schaun ...

Code
set ASTID to AppleScript's text item delimiters 
set AppleScript's text item delimiters to return
set theFolder to choose folder
set FolderName to name of (info for theFolder)

--(theFolder as text) bin hier auf tiger und bin mir wg. der Klasse, die neuere Raubkatzen zurückgeben nicht sicher ...
set theData to (list folder (theFolder as text) without invisibles) as text

set AppleScript's text item delimiters to ASTID

my toFile(theData, FolderName)

on toFile(theData, FolderName)
set the txtFile to ((path to desktop) as text) & FolderName & ".txt"
try
open for access file the txtFile with write permission
write theData to file the txtFile
close access file the txtFile
on error
try
close access file the txtFile
end try
end try
end toFile



als Antwort auf: [#500698]
(Dieser Beitrag wurde von -hans- am 11. Sep 2012, 16:21 geändert)

Dateiliste | Dateinamen in eine Liste schreiben

pjoern
Beiträge gesamt: 110

12. Sep 2012, 09:12
Beitrag # 6 von 9
Beitrag ID: #500731
Bewertung:
(7645 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,
hallo Hans-Gerd,

ich habe alle drei Hinweise/Scripte getestet (10.6.8).

a) … to name of my akt_Bild …
liefert leider eine Fehlermeldung.
"akt_Bild kann nicht in Typ reference umgewandelt werden."

b) … list folder …
Das ist die Lösung. Vielen Dank an Euch!
Ich nutze jetzt die komplette Version von Hans-Gerd, mit dem einzigen Unterschied, dass ich den Namen der Bildliste auf "Bildliste.txt" festlege.

Code
set ASTID to AppleScript's text item delimiters 
set AppleScript's text item delimiters to return
set theFolder to choose folder

set theData to (list folder (theFolder as text) without invisibles) as text
set AppleScript's text item delimiters to ASTID

my toFile(theData)

on toFile(theData)
set the txtFile to ((path to desktop) as text) & "Bildliste.txt"
try
open for access file the txtFile with write permission
write theData to file the txtFile
close access file the txtFile
on error
try
close access file the txtFile
end try
end try
end toFile


Vielen Dank für Eure Hilfe!


als Antwort auf: [#500708]

Dateiliste | Dateinamen in eine Liste schreiben

masterkey
Beiträge gesamt:

12. Sep 2012, 14:33
Beitrag # 7 von 9
Beitrag ID: #500756
Bewertung:
(7612 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
 

hi pjoern

wenn du es kurz und knackig magst, versuch das mal:



Code
set theFolder to choose folder with prompt "Bitte Ordner wählen:" 
do shell script "cd " & quoted form of POSIX path of theFolder & ";ls -1 > " & quoted form of POSIX path of ((path to desktop as text) & "Bildliste.txt")



das ganze lässt sich ausbauen, sodass sich die ausgabe sortiert ist und im textfile infos zum ausführungszeitpunkt und pfad des betroffenen ordners stehen.



Code
set theFolder to choose folder with prompt "Bitte Ordner wählen:" 
do shell script "mySource=" & quoted form of POSIX path of theFolder & ";myTarget=" & quoted form of POSIX path of ((path to desktop as text) & "Bildliste.txt") & ";cd $mySource;/bin/echo -n \"Erstellt: \" > $myTarget;date \"+%d %m %Y %H:%M:%S\" >> $myTarget;/bin/echo -n \"Ordner: $mySource\" >> $myTarget;/bin/echo -n \"\n\n\" >> $myTarget;ls -1|sort -n >> $myTarget"



viel spass.


als Antwort auf: [#500690]

Dateiliste | Dateinamen in eine Liste schreiben

-hans-
Beiträge gesamt: 748

12. Sep 2012, 17:33
Beitrag # 8 von 9
Beitrag ID: #500769
Bewertung:
(7587 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
cool :)

... und was nicht alles in eine Zeile passt ;-)


als Antwort auf: [#500756]

Dateiliste | Dateinamen in eine Liste schreiben

Hans Haesler
  
Beiträge gesamt: 5826

13. Sep 2012, 12:05
Beitrag # 9 von 9
Beitrag ID: #500808
Bewertung:
(7551 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo pjoern,

nur der Vollständigkeit halber: Ich hatte das my an der falschen Stelle eingefügt. Es sollte vor der Liste stehen (nicht vor dem aktuellen Element). Aber in einer Finder-Schleife würde das auch nicht den erhofften Schub bringen.

Wenn schon "Finder", dann könnten die Namen direkt geholt werden:

Code
set Bildordner to choose folder 

tell application "Finder"
set Bildliste to name of every file of folder Bildordner
end tell

Doch Du hast ja jetzt eine gute Lösung.

Gruss, Hans


als Antwort auf: [#500731]
X

Aktuell

InDesign / Illustrator
MTT_300x300_11_2022

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!