suffix per sript ändern

  1. chanel96

    chanel96 Thread StarterMacUser Mitglied

    Mitglied seit:
    28.03.2006
    Beiträge:
    42
    Zustimmungen:
    0
    hallo,
    ich habe einen ordner in dem sich an die 1000 dateien befinden deren namen ich behalten, aber die datei-endung ändern möchte.
    ich denke dass es per script nicht besonders schwer sein wird.
    leider ist bei mir plan<0 was das angeht.
    wäre jemand bereit mir zu helfen ?
    möchte nichts extra dafür installieren und mit dem automator hab ichs auch nicht hinbekommen.

    danke
    ch.
     
    chanel96, 20.12.2006
  2. bequiet

    bequietMacUser Mitglied

    Mitglied seit:
    16.04.2005
    Beiträge:
    1.191
    Zustimmungen:
    149
    Also, folgende Befehle erzeugen in dem Ordner in dem die dateien liegen einen Unterordner "new" in den die dateien kopiert werden und mit "DIENEUEDATEIENDUNG" versehen werden.

    Auszuführen ist es wie folgt:
    Das Terminal öffnen, und mit cd "VERZEICHNISNAME" in das Verzeichnis wechslen in dem die dateien liegen.
    Dann den Code per Copy&Paste in das Terminal einfügen.
    Natürlich das "DIENEUEDATEIENDUNG" mit deiner gewünschten ersetzen.
    und dann mit ENTER ausführen.

    wichtig: Das Script funktioniert nur sauber, wenn die vorhandenen Dateien keinen "." ( in Worten Punkt ) im Namen haben, sondern nur das Suffix mit einem Punkt getrennt ist

    hinweis: Benutzung auf eigene gefahr. Mach vorher eine Sicherheitskopie ;)
    Code:
    NEWSUF="DIENEUEDATEIENDUNG"; for FILE in ./*; do bn=`basename $FILE`; name=`echo $bn | awk -F'.' '{print $1}'`; suf=`echo $bn | awk -F'.' '{print $2}'`; if [ ! -d new ]; then mkdir new; fi; cp $FILE ./new/$name.$NEWSUF; done
     
    bequiet, 20.12.2006
  3. little_pixel

    little_pixelMacUser Mitglied

    Mitglied seit:
    06.06.2006
    Beiträge:
    4.010
    Zustimmungen:
    1.002
    Hallo,

    ich habe Dir schnell etwas umgesetzt.

    Bitte herunterladen und folgende Schritte ausführen:

    - Skript doppelklicken
    - Im Finder die gewünschten Files makieren
    - Skript ausführen
    - Eingabe tätigen

    Fertig!

    Viel Spass und Erfolg!

    Viele Grüße

    PS: Dem Skript sind sämtliche Punkte, Sonderzeichen usw. egal. Es darf ein Dokument nur nicht "meinTest.pdf.pdf" heißen. Mit dem Namen "deinTest.doc.pdf" ist es kein Problem.
     
    little_pixel, 20.12.2006
  4. chanel96

    chanel96 Thread StarterMacUser Mitglied

    Mitglied seit:
    28.03.2006
    Beiträge:
    42
    Zustimmungen:
    0
    uff, das ging ja schnell ;)
    vielen dank euch beiden!
    ch.
     
    chanel96, 20.12.2006
  5. chebfarid

    chebfaridMacUser Mitglied

    Mitglied seit:
    05.10.2005
    Beiträge:
    894
    Zustimmungen:
    75
    Hab' jetzt leider keine Möglichkeit, das Beispiel von "little_pixel" runterzuladen und auszuprobieren (by the way, ich fände es besser wenn Codebeispiele direkt in diesem Forum veröffentlicht würden, so haben alle was davon ;) ), aus dem Stand müßte foldendes gehen:
    Gleicher Hinweis wie im Unix-Beispiel von "bequiet": das Script funktioniert nur, wenn der Filename nicht mehr als einen Punkt enthält...
    PHP:
    set otid to text item delimiters
    set text item delimiters to 
    "."
    set newSuffix to ".xxx"
    set f to choose folder
    tell application 
    "Finder"
        
    set theFiles to every item of f
        repeat with aFile in theFiles
            set n to name of aFile
            set n to text item 1 of n
            set newName to n 
    newSuffix
            set name of aFile to newName
        end repeat
    end tell
    set text item delimiters to otid
    Frohes Scripten
    Farid
     
    chebfarid, 20.12.2006
  6. little_pixel

    little_pixelMacUser Mitglied

    Mitglied seit:
    06.06.2006
    Beiträge:
    4.010
    Zustimmungen:
    1.002
    Hallo,

    ich persönlich finde es nicht sehr ratsam den "." (Punkt) als Trennzeichen zu verwenden. Das gibt Probleme bei Dateien, die mehrere Punkte enthalten.
    Ich setze einfach das Suffix selbst als Trennzeichen. Damit gibt es nur eine einzige Ausnahme: Zweimal das gleiche Suffix im Dateinamen.

    Hier der Code:

    Code:
    set altesSuffix to ""
    set neuesSuffix to ""
    
    
    tell application "Finder"
    	
    	
    	set sel to selection
    	
    	if sel is {} then
    		display dialog "Bitte die Files makieren." buttons {" OK "} default button 1 with icon 2
    	else
    		
    		display dialog "Altes Suffix angeben!" default answer "z.B: .txt" buttons {"OK"} default button 1 with icon note
    		set altesSuffix to text returned of result
    		
    		display dialog "Neues Suffix angeben!" default answer "z.B: .text" buttons {"OK"} default button 1 with icon note
    		set neuesSuffix to text returned of result
    		
    		
    		
    		repeat with nextesFile in sel
    			try
    				set holeNamen to name of nextesFile
    				set AppleScript's text item delimiters to altesSuffix
    				set nameTeilListe to text items of holeNamen
    			end try
    			
    			try
    				set namePraefix to first item of nameTeilListe
    				set neuerName to namePraefix & neuesSuffix
    				set anzahl to count of nameTeilListe
    				
    				if (anzahl > 2) then
    					display dialog "Das Dokument " & holeNamen & " ist nicht eindeutig. Es scheint mehrere Suffixe zu enthalten." buttons {" OK "} default button 1 with icon stop giving up after 1
    					
    				end if
    			end try
    			
    			try
    				with timeout of 1 seconds
    				set name of nextesFile to neuerName
    				end timeout
    			on error
    				display dialog "Das Dokument " & holeNamen & " konnte nicht umbennant werden." buttons {" OK "} default button 1 with icon stop giving up after 1
    			end try
    			
    		end repeat
    		
    	end if
    	
    end tell
    
    Viele Grüße

    Skript schon geändert. Funktioniert.
     
    little_pixel, 20.12.2006
  7. chanel96

    chanel96 Thread StarterMacUser Mitglied

    Mitglied seit:
    28.03.2006
    Beiträge:
    42
    Zustimmungen:
    0
    ok, bin nun dazu gekommen das script von little_pixel zu testen und muß leider sagen es funktioniert nicht.
    bekomme immer die meldung dass folgende datei 'xyz.wav' nicht umbenannt werden kann.
    manche dateien sehen so aus 'PS56TG.WAV.wav', is klar, geht nicht , hat er ja auch geschrieben.
    andere wiederum sehen so '24DIL-C-0.wav' oder auch so 'unibassC.wav' aus, müssten also eigentlich gehen, oder nicht!?
    demnach funktioniert die varriante von bequiet auch nicht für alle meine files da ja in manchen zwei punkte auftauchen.

    hmm,sonst jemand n rat
     
    chanel96, 21.12.2006
  8. little_pixel

    little_pixelMacUser Mitglied

    Mitglied seit:
    06.06.2006
    Beiträge:
    4.010
    Zustimmungen:
    1.002
    Hallo,

    na wenn die Meldung kommt, dann funktioniert es doch einwandfrei :)
    Ich habe die Meldung in einem try-catch eingebaut. D.h. Wenn die Datei nicht umbenannt werde darf, dann soll die Meldung kurz erscheinen:

    Mögliche Gründe:

    - Dateien sind in Verwendungen
    - Zuriffsrechte nicht ausrechend

    Viele Grüße
     
    little_pixel, 21.12.2006
  9. chanel96

    chanel96 Thread StarterMacUser Mitglied

    Mitglied seit:
    28.03.2006
    Beiträge:
    42
    Zustimmungen:
    0
    ok so kann man das auch sehen.
    allerdings sind die dateien nicht in verwendung und ich kann sie von hand umbenennen. somit dürfte die rechtefrage auch geklärt sein!?

    ch.
     
    chanel96, 21.12.2006
  10. little_pixel

    little_pixelMacUser Mitglied

    Mitglied seit:
    06.06.2006
    Beiträge:
    4.010
    Zustimmungen:
    1.002
    Bau bitte mal ein:

    with timeout of 1 seconds
    set name of nextesFile to neuerName
    end timeout

    Anstelle von nur:

    set name of nextesFile to neuerName

    Viele Grüße
     
    little_pixel, 21.12.2006
Die Seite wird geladen...