Script zu umbenennen von Dateien

man solle irgendetwas rekursiv anwenden ("dann baust du dir eine Schleife")
falsch (rekursion ≠ schleife) und siehe #11.

seid ihr jetzt schon so verwöhnte fratzen, die man nur noch mit brei füttern kann.
am ende nimmt der TS evtl. namemangler, dann brauch ich gar nicht erst anzufangen und das gibt's hier in letzter zeit ja auch oft. wie und was der TS verwenden will, bleibt also abzuwarten.
 
  • Gefällt mir
Reaktionen: agrajag
Solche Foren sind hart, wenn man zuvor jahrelang im Usenet unterwegs war, ne? Ich hatte sehr lange gebraucht mit Foren klarzukommen, aber was bleibt einem übrig? Wenigstens gibt es noch Mailinglisten (dafür braucht es dann aber einen guten Mail-Client). :)
 
Basiert auf Olivettis bash:
Code:
tell application "Finder"
    set var to files of (choose folder)
end tell
repeat with x in var
    tell application "System Events"
        set nameInfo to name of x
    end tell
    do shell script "echo " & quoted form of nameInfo & " | sed -E 's/(^.*)_([0-3][0-9])\\.([0-1][0-9])\\.([1-2][0-9][0-9][0-9])/\\4-\\3-\\2_\\1/'"
end repeat
Das ist natürlich nicht fertig aber bevor ich die halbe Arbeit mache... mal sehen. Danke sagt ja dann e niemand.
 
Zuletzt bearbeitet:
habe den letzen Script mal ausprobiert, erkennt eine Datei im Ordner und zeigt mir dann diese im Terminal im richtigen Format an.
Nur leider wenn ich dann in den Ordner gehe ist die Datei nicht umbenannt.
 
Code:
on open choFo
    try
        set choFo to choFo as alias
        if last item of (choFo as string) ≠ ":" then error
    on error
        display alert "Works with one folder only." as critical
        return
    end try
    rename(choFo)
end open

set choFo to choose folder
rename(choFo)
on rename(choFo)
    tell application "Finder"
        set var to files of choFo
    end tell
    repeat with x in var
        tell application "System Events"
            set nameInfo to name of x
        end tell
        set newName to do shell script "echo " & quoted form of nameInfo & " | sed -E 's/(^.*)_([0-3][0-9])\\.([0-1][0-9])\\.([1-2][0-9][0-9][0-9])/\\4-\\3-\\2_\\1/'"
        tell application "Finder"
            set name of x to newName
        end tell
    end repeat
end rename

Als Programm speichern. Dann kannst Du den Ordner einfach darauf ziehen oder die App starten und den Ordner auswählen.
Besser Bitcoins verwenden.
 
ich würde noch eine abfrage auf nameInfo ≠ newName einbauen. es sollen ja nur betroffene files umbenannt werden.
und sprechende variablen; myFolder oder theFolder statt choFo, myFiles/theFiles statt var (!).
auch nameInfo (man erwartet etwas anderes) finde ich etwas unglücklich. :p
---
@JimmyJoe
heissen die files wirklich so, ohne endung?
 
Naja, schliesslich muss der Code ja nicht gelesen werden sondern ausgeführt werden. Macht doch nix nameInfo ≠ newName oder nameInfo = newName. Egal ob gleiches mit gleichem überschrieben wird.
 
Zuletzt bearbeitet:
du scheinst noch nicht lange zu programmieren.
irgendwann musst du oder ein anderer das evtl. doch wieder lesen.

Egal ob gleiches mit gleichem überschrieben wird.
du änderst ja damit auch immer metadaten; wenn das tatsächlich gewollt ist, klar, gut so.
bei mir schreien da halt sämtliche zellen. :crack:
 
...du änderst ja damit auch immer metadaten; wenn das tatsächlich gewollt ist, klar, gut so.
bei mir schreien da halt sämtliche zellen. :crack:
Ich weiss. Werde aber nicht bezahlt für das Script und es tut seinen Dienst. Quick and Dirty. :crack:
 
Zurück
Oben Unten