[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:
(7557 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: 5818

11. Sep 2012, 14:05
Beitrag # 2 von 9
Beitrag ID: #500696
Bewertung:
(7534 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:
(7524 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: 5818

11. Sep 2012, 16:20
Beitrag # 4 von 9
Beitrag ID: #500707
Bewertung:
(7480 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:
(7479 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:
(7403 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:
(7370 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:
(7345 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: 5818

13. Sep 2012, 12:05
Beitrag # 9 von 9
Beitrag ID: #500808
Bewertung:
(7309 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

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
09.05.2023

Digicomp (Bern, Basel, Zürich)
Dienstag, 09. Mai 2023, 08.30 - 17.00 Uhr

Kurs

Sie verfügen über ein Abonnement der Creative Cloud, welches Adobe Acrobat DC Pro beinhaltet. Sind Sie unsicher, ob Ihre PDF Dateien für die jeweilige Druckausgabe geeignet sind? Lernen Sie in diesem Kurs das notwendige Rüstzeug für den sicheren Datenaustausch mit Druckdienstleistern. Erstellen Sie druckfähige PDF/X und prüfen Sie Ihre PDFs vor einer Weitergabe mit Acrobat DC Pro.

Dauer: 1 Tag
Preis: CHF 700.–, exkl. MWST

Ja

Organisator: Digicomp Academy AG

https://digicomp.ch/weiterbildung-media-communication/adobe/kurs-pruefen-von-druck-pdf-in-acrobat-dc-pro--basic

Prüfen von Druck-PDF in Acrobat DC Pro