• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Automator Script -> Spezifische Dateien suchen und Kopieren...

nihilo

Golden Delicious
Registriert
25.10.12
Beiträge
10
Hallo zusammen.
Ich benötige etwas Hilfe.

Ich möchte ein Script basteln, welches mir aus einer z.B. Textdatei oder per Eingabe gewünschte Bilder kopiert und in
einen neuen Ordner schiebt.

Ausgangssituation:
StartOrdner, Zielordner.

Im Startordner befinden sich bilder nach einer festen Nomenklatur sortiert.

Ein Bildset sieht zb wie folgt aus:
001-130718-1234-01.jpg
001-130718-1234-02.jpg
001-130718-1234-03.jpg usw....

Bildset 2:
001-130718-5678-01.jpg
001-130718-5678-02.jpg usw....

Wenn ich jetzt bestimmte Bilder suche aus verschiedenen Sets, hab ich mir gedacht lege ich eine Textdatei an.

Inhalt der Textdatei wäre z.B:

001-130718-1234-02.jpg; 001-130718-5678-02.jpg;001-130718-5678-01.jpg;
001-130718-5678-04.jpg;

Was soll das Script also machen?

Script Soll aus der Textdatei die besagten Dateien im Startordner suchen, in einen neuen Ordner im "ZielOrdner" kopieren und in ein Archiv packen.

Aber irgendwie komme ich nicht dahinter...

Hat jemand eine idee?

Ich würde mich wirklich sehr über einen Gedankenanstoß freuen.

Viele liebe Grüße
Nihilo
 

Pill

Adams Parmäne
Registriert
07.07.12
Beiträge
1.310
Hallo Nihilo,

natürlich lässt sich das mit einem Skript erledigen. Aber wäre es nicht einfacher, die Dateien gleich direkt in einen neuen Ordner zu kopieren oder, wenn das zuviel Platz beansprucht, einen Alias zu erstellen? Mir ist der Sinn der Dateiliste nicht so ganz klar.
 

nihilo

Golden Delicious
Registriert
25.10.12
Beiträge
10
Guten morgen,

Vielen Dank für deine Antwort :)
Der Sinn dahinter ist eigentlich ganz einfach.

Ich habe eine Website wo Galerien mit Kindergartenfotografie drauf liegen.
Da es mehrere Kitas sind und jedes mal sehr viele Kinder und somit Fotos entstehen benötige ich dieses Script.
Auf der Website führen die Eltern eine Bestellung durch.
Ich bekomme eine Email wo dann die Bildnummern drin sind.
Sprich, ich nehme dann die Bildnummern, suche diese und kopiere diese in einen Ordner welcher
dann in eine Zip gespeichert wird. Diese ZIP Datei gelangt dann wieder auf den Server,
und der Kunde bekommt eine Email mit dem entsprechendem Link.
Bisher mache ich das Manuel, aber das ist jedesmal ein großer Aufwand.
Daher die Idee mit dem Script. Aber ich komme nicht weiter. Ich finde nur die Möglichkeit einzelne Dateien zu suchen und zu kopieren.

Ich hoffe du kannst mir helfen ? :)

LG
Nihilo
 
Zuletzt bearbeitet:

Pill

Adams Parmäne
Registriert
07.07.12
Beiträge
1.310
Probier mal folgendes Skript aus:

Code:
[B]property[/B] [COLOR=#4F8F00]inputFolder[/COLOR] : "/Users/Name/Desktop/test/" [COLOR=#5E6161]--Ordner mit den Bildern[/COLOR]
[B]property[/B] [COLOR=#4f8f00]outputFolder[/COLOR] : "/Users/Name/Name/test/output/" [COLOR=#5e6161]--Ausgabe-Ordner[/COLOR]


[B]tell[/B] [COLOR=#0433ff][I]application[/I][/COLOR] "Finder"
[COLOR=#5E6161]--Daten auswählen:[/COLOR]
    [B]repeat[/B]
        [B]set[/B] [COLOR=#4f8f00]theAnswer[/COLOR] [B]to[/B] ([COLOR=#012fbe][B]display dialog[/B][/COLOR] "Geben Sie die Dateinamen ein: " [COLOR=#012fbe]default answer[/COLOR] [COLOR=#812fdc]return[/COLOR] [COLOR=#012fbe]buttons[/COLOR] {"Abbrechen", "Datei auswählen...", "OK"} [COLOR=#012fbe]default button[/COLOR] 3)
        [B]if[/B] [COLOR=#5730be]button returned[/COLOR] [B]of[/B] [COLOR=#4f8f00]theAnswer[/COLOR] [B]is[/B] "Datei auswählen..." [B]then[/B]
            [B]try[/B]
                [B]set[/B] [COLOR=#4f8f00]theText[/COLOR] [B]to[/B] ([COLOR=#012fbe][B]read[/B][/COLOR] ([COLOR=#012fbe][B]choose file[/B][/COLOR] "Wählen Sie die Textdatei aus: "))
                [B]exit[/B] [B]repeat[/B]
            [B]on[/B] [B]error[/B] [COLOR=#4f8f00]err[/COLOR]
[COLOR=#012FBE][B]display dialog [/B][COLOR=#4f8f00]err[/COLOR][/COLOR]
            [B]end[/B] [B]try[/B]
        [B]else[/B] [B]if[/B] [COLOR=#5730be]button returned[/COLOR] [B]of[/B] [COLOR=#4f8f00]theAnswer[/COLOR] [B]is[/B] "OK" [B]then[/B]
[COLOR=#4F8F00][COLOR=#000000]            [B]set[/B] [/COLOR]theText[COLOR=#000000] [B]to[/B] [/COLOR][COLOR=#5730be]text returned[/COLOR][COLOR=#000000] [B]of[/B] [/COLOR]theAnswer[/COLOR]
            [B]exit[/B] [B]repeat[/B]
        [B]else[/B]
            [B]return[/B]
        [B]end[/B] [B]if[/B]
    [B]end[/B] [B]repeat[/B]
    
[COLOR=#5E6161]--Dateien suchen und kopieren:[/COLOR]
[COLOR=#812FDC][COLOR=#000000]    [B]set[/B] [/COLOR]AppleScript[COLOR=#000000]'s [/COLOR]text item delimiters[COLOR=#000000] [B]to[/B] {" ", ",", ";", [/COLOR]return[COLOR=#000000]}[/COLOR][/COLOR]
    [B]set[/B] [COLOR=#4f8f00]theFiles[/COLOR] [B]to[/B] [B]every[/B] [COLOR=#0433ff][I]text item[/I][/COLOR] [B]of[/B] [COLOR=#4f8f00]theText[/COLOR]
[COLOR=#812FDC][COLOR=#000000]    [B]set[/B] [/COLOR]AppleScript[COLOR=#000000]'s [/COLOR]text item delimiters[COLOR=#000000] [B]to[/B] ""[/COLOR][/COLOR]
    [B]repeat[/B] [B]with[/B] [COLOR=#4f8f00]aFile[/COLOR] [B]in[/B] [COLOR=#4f8f00]theFiles[/COLOR]
        [B]if[/B] [COLOR=#4f8f00]aFile[/COLOR] [B]is[/B] [B]not[/B] "" [B]then[/B]
            [COLOR=#012fbe][B]do shell script[/B][/COLOR] "find " & [COLOR=#812fdc]quoted form[/COLOR] [B]of[/B] [COLOR=#4f8f00]inputFolder[/COLOR] & " -name \"" & [COLOR=#4f8f00]aFile[/COLOR] & "\" | while read file; do cp \"$file\" " & [COLOR=#812fdc]quoted form[/COLOR] [B]of[/B] [COLOR=#4f8f00]outputFolder[/COLOR] & "; done"
        [B]end[/B] [B]if[/B]
    [B]end[/B] [B]repeat[/B]
    
[COLOR=#5E6161]--Dateien zippen:[/COLOR]
    [COLOR=#012fbe][B]do shell script[/B][/COLOR] "cd " & [COLOR=#812fdc]quoted form[/COLOR] [B]of[/B] [COLOR=#4f8f00]outputFolder[/COLOR] & "; zip -rmv archiv.zip ./*"
[B]end[/B] [B]tell[/B]

Das Skript kannst du kopieren und in den AppleScript-Editor einfügen. Dann musst du die beiden Pfade oben anpassen, beide Ordner müssen vorhanden sein. Du solltest dann das Skript ausführen oder als Programm speichern können.

Mach vor dem Testen bitte ein Backup deiner Daten.

Das Skript fragt dich nach den Dateinamen. Du kannst entweder direkt eine Textdatei auswählen oder den Text von Hand eingeben. Die Dateinamen können durch ein Leerzeichen, Komma, Semikolon oder einen Zeilenumbruch getrennt werden. Das bedeutet gleichzeitig, dass diese Zeichen nicht im Dateinamen vorkommen dürfen.

Anschließend werden die Dateien in den Ausgabe-Ordner kopiert und gleich in ein Zip-Archiv gepackt.
 
Zuletzt bearbeitet:

nihilo

Golden Delicious
Registriert
25.10.12
Beiträge
10
Ich weiß nicht was ich sagen soll!!!
Du bist ein Schatz!
Läuft super und Tadellos :)
Ich freu mich wirklich sehr darüber :)
 

Pill

Adams Parmäne
Registriert
07.07.12
Beiträge
1.310
Freut mich, wenn alles geklappt hat!
 

MrBrightsight

Erdapfel
Registriert
26.10.13
Beiträge
1
Hallo Moin,

mit .jpg Bildern funktioniert das wunderbar, aber was nun wenn ich den gleichen Job mit .mp3 Dateien abarbeiten möchte. Das geht leider irgendwie nicht. Werden auch Dateien in Unterordnern erkannt?

Habe ein file mit 7000 Pfadangaben/Dateinamen und würde gerne bestimmte Dateien (.mp3) aus einer bestehenden Baumstruktur in einen Ordner kopieren. Komme hier leider nicht weiter.
 

Pill

Adams Parmäne
Registriert
07.07.12
Beiträge
1.310
Wie sieht denn die Liste genau aus? Wenn es einfach eine Textdatei mit einem Pfad pro Zeile ist, dann sollte es so gehen (im Terminal):

Code:
cat "/Users/Name/Desktop/Datei.txt" | while read line; do cp -v "$line" "/Users/Name/Ziel/" ; done

Wenn nicht kopiert, sondern bewegt werden soll, dann muss cp durch mv ersetzt werden.
 

Marceltheshell

Erdapfel
Registriert
10.10.14
Beiträge
2
Hi Pill,

ich habe da eine Frage ob du mir evtl dieses Script erweitern könntest?

Zu meiner Aufgabe.:
ich muss bestimmte zip datein vom server holen und entpacken, die darin enthaltenen .jpgs umbenennen und wieder neu zippen.
das ganze bekomme ich per Mail mitgeteilt welche ich suchen muss und mit welcher nummer ich sie umbennen muss.

z.B. erst Zahl ist die alte nummer, zweite zahl ist die neue nummer.
893203201 893204204
893013210 893014212
790503201 790504201

um die Zip zu suchen nutze ich dein script, wobei ich die Mail soweit ändere das ich das .zip hinten ranhänge damit er die datei findet.
und den do shell zum zippen habe ich rausgenommen


(es handelt sich hier um Artikelnummern, die wir ändern wollen und neu zippen)
z.B.
alte Datei
893203201.zip (Inhalt 893203201_001.jpg manchmal sind auch 2 oder 3 Bilder enthalten diese enden dann eben mit _002 oder _003)
neue Datei
893204204.zip (Inhalt 893204204_001.jpg u.s.w.)

is das realisierbar?
Solltest du ein script schreiben können wäre es schön wenn du es gut auskommentierst damit ich evtl befehle und funktionen dazu lerne kann.

Viele Dank für deine Hilfe.
mfg Marcel