• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Ein Blick aus dem Fenster verrät es: Der Lenz ist da. Passenderweise wird auch der Frühling unser Thema für das Foto des Monats. Hier geht es lang --> Klick

Automator/AppleSkript – PDF´s in Ordner verschieben

Herr_Eitel

Erdapfel
Registriert
06.04.25
Beiträge
2
Hallo Zusammen,
ich arbeite in einer Druckerei und wir bekommen Anfang des Monats ca. 12.000 Einzel-PDF´s in ca. 20 Ordnern geliefert. Die Ordner sind für die einzelnen Niederlassungen.

Meine Anforderung für eine Automatisierung wäre, die PDF´s in den einzelnen Niederlassungs-Ordnern zu jeweils 100 PDF´s in Unterordnern zu verschieben und Unterordner von 1-10 (bei zB. 973 PDF´s im Hauptordner) zu erstellen. Unterordner 1-9 je 100 Dateien, Unterordner 10 dann den Rest.

Leider kenne ich mich mit Skripten oder Automator-Aktionen gar nicht aus.
Wir machen das aktuell noch manuell per Hand. Allerdings ist das sehr aufwändig und Fehlerbehaftet.

Über einen Lösungsvorschlag oder evtl. sogar ein fertiges Skript wäre ich super dankbar.


Viele Grüße an alle

Marco
 

kelevra

Mutterapfel
Registriert
12.07.10
Beiträge
5.192
AppleScript:
-- Benutzer wird aufgefordert, den Ordner auszuwählen
set mainFolder to choose folder with prompt "Wähle Ordner mit den PDFs aus:"

-- Hole alle PDF-Dateien im Hauptordner
tell application "Finder"
    set pdfFiles to every file of mainFolder whose name extension is "pdf"
    set totalPDFs to count of pdfFiles
end tell

-- Anzahl der Dateien pro Ordner
set filesPerFolder to 100
set folderCount to (totalPDFs div filesPerFolder)
if (totalPDFs mod filesPerFolder) is not 0 then
    set folderCount to folderCount + 1
end if

-- PDFs aufteilen und verschieben
repeat with i from 1 to folderCount
    set folderName to (i as string)
    set newSubfolder to (mainFolder as text) & folderName & ":"
   
    -- Ordner erstellen, wenn er nicht existiert
    tell application "Finder"
        if not (exists folder newSubfolder) then
            make new folder at mainFolder with properties {name:folderName}
        end if
    end tell
   
    -- 100 PDFs in diesen Ordner verschieben
    repeat with j from 1 to filesPerFolder
        set fileIndex to ((i - 1) * filesPerFolder) + j
        if fileIndex is greater than totalPDFs then exit repeat
       
        set thisPDF to item fileIndex of pdfFiles
        tell application "Finder"
            move thisPDF to folder newSubfolder
        end tell
    end repeat
end repeat

display dialog "Fertig! Die PDFs wurden in " & folderCount & " Ordner aufgeteilt." buttons {"OK"} default button 1
 
  • Love
Reaktionen: u0679 und Scotch

Herr_Eitel

Erdapfel
Registriert
06.04.25
Beiträge
2
DU BIST EIN GOTT........vielen, vielen Dank!!!

Wenn ich so unverschämt sein drüfte, hätte ich noch eine kleine Bitte!!??

Die ca. 20 Ordner liegen in einem "Oberordner". Kannst du das so machen, dass ich den Oberordner auswähle und das Skript die darin liegenden Ordner berücksichtigt und darin dann die Unterordner mit den aufgeteilten Dateien erzeugt!?!

Wenn nicht, auch kein Problem....so hilft mir das schon sehr!!!!

VG
Marco
 
  • Like
Reaktionen: u0679

kelevra

Mutterapfel
Registriert
12.07.10
Beiträge
5.192
AppleScript:
-- Benutzer wählt den Oberordner aus
set topFolder to choose folder with prompt "Wähle den Oberordner mit den Niederlassungs-Ordnern aus:"

-- Hole alle Unterordner im Oberordner
tell application "Finder"
    set branchFolders to every folder of topFolder
end tell

-- Durchlaufe jeden Unterordner
repeat with branchFolder in branchFolders
    set branchPath to (branchFolder as alias)
   
    -- Hole alle PDFs im aktuellen Unterordner (nur auf oberster Ebene)
    tell application "Finder"
        set pdfFiles to every file of branchPath whose name extension is "pdf"
        set totalPDFs to count of pdfFiles
    end tell
   
    if totalPDFs > 0 then
        -- Berechne, wie viele Unterordner nötig sind
        set filesPerFolder to 100
        set folderCount to (totalPDFs div filesPerFolder)
        if (totalPDFs mod filesPerFolder) is not 0 then
            set folderCount to folderCount + 1
        end if
       
        -- PDFs in 100er-Blöcke in Unterordner verschieben
        repeat with i from 1 to folderCount
            set folderName to (i as string)
            set newSubfolderPath to (branchPath as text) & folderName & ":"
           
            -- Unterordner erstellen, falls nicht vorhanden
            tell application "Finder"
                if not (exists folder newSubfolderPath) then
                    make new folder at branchPath with properties {name:folderName}
                end if
            end tell
           
            -- 100 Dateien verschieben
            repeat with j from 1 to filesPerFolder
                set fileIndex to ((i - 1) * filesPerFolder) + j
                if fileIndex > totalPDFs then exit repeat
               
                set thisPDF to item fileIndex of pdfFiles
                tell application "Finder"
                    move thisPDF to folder newSubfolderPath
                end tell
            end repeat
        end repeat
    end if
end repeat

display dialog "Fertig! Alle PDFs wurden aufgeteilt." buttons {"OK"} default button 1

‼️Bitte vorher auf jeden Fall ein Backup machen. Ich kann mich auch irgendwo verhauen haben. 😉
 
  • Like
Reaktionen: u0679