Batch-Umbenennung von Ordnern

Gibt es eine Möglichkeit, aktuelle Ordnernamen stapelweise durch aufsteigende Nummern zu ersetzen? Mit der integrierten Funktion „Finder-Elemente umbenennen“ können Sie nur auf die Art „Text suchen und ersetzen“ ersetzen. Nicht alle meine aktuellen Ordnernamen haben gemeinsame Zeichen. Ich benutze übrigens Mojave.

Sie könnten es mit einem Bash-Skript versuchen. Wie hier angemerkt unix.stackexchange.com/questions/216659/… Ich mag die Lösung von @eapo.

Antworten (2)

Hier ist eine recht effiziente AppleScript-Lösung. Sie können diesen Code in script editor.app als Anwendung speichern.

set newName to 0
set theFolder to (choose folder with prompt "Choose Folder" with invisibles)

tell application "Finder"
    set theFolders to folders of theFolder 
    set sortedFolders to sort theFolders by name
    repeat with i from 1 to count of sortedFolders
        set newName to newName + 1
        set thisItem to item i of sortedFolders
        set name of thisItem to newName
    end repeat
end tell

Geben Sie hier die Bildbeschreibung ein

Wenn Sie möchten, dass die einstelligen Ordnernamen zweistellig erscheinen (01,02,03 usw.), verwenden Sie stattdessen diese folgende Version des Skripts

set newName to 0
set theFolder to (choose folder with prompt "Choose Folder" with invisibles)

tell application "Finder"
    set theFolders to folders of theFolder
    set sortedFolders to sort theFolders by name
    repeat with i from 1 to count of sortedFolders
        set newName to newName + 1
        set thisItem to item i of sortedFolders
        if newName is less than 10 then
            set name of thisItem to 0 & newName as string
        else
            set name of thisItem to newName
        end if
    end repeat
end tell

Der folgende AppleScript-Code benennt die Dateien im ausgewählten Ordner um, anstatt Ordner umzubenennen.

set newName to 0
set theFolder to (choose folder with prompt "Choose Folder" with invisibles)

tell application "Finder"
    set theFiles to files of theFolder
    set sortedFiles to sort theFiles by name
    repeat with i from 1 to count of sortedFiles
        set newName to newName + 1
        set thisItem to item i of sortedFiles
        set nameExtension to name extension of thisItem
        if newName is less than 10 then
            set name of thisItem to 0 & newName & "." & nameExtension as string
        else
            set name of thisItem to newName & "." & nameExtension as string
        end if
    end repeat
end tell
Danke schön! Wie würde ich das bearbeiten, um für Bilder zu arbeiten? Oder einzelne Dateien statt Ordner?
@usuallystuck Ich habe eine dritte Version des Codes hinzugefügt, um Dateien anstelle von Ordnern umzubenennen

Wählen Sie alle Ordner aus, die Sie umbenennen möchten, klicken Sie mit der rechten Maustaste darauf und wählen Sie "[Anzahl] Elemente umbenennen...".

Wenn Sie die Funktion „Suchobjekte umbenennen“ verwenden, müssen Sie sie im Dropdown-Menü von „Text ersetzen“ auf „ Format “ ändern:

Geben Sie hier die Bildbeschreibung ein

Jetzt können Sie es beliebig umbenennen:

Geben Sie hier die Bildbeschreibung ein