suffix per sript ändern

C

chanel96

Mitglied
Thread Starter
Dabei seit
28.03.2006
Beiträge
42
Reaktionspunkte
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.
 
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
 
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.
 
uff, das ging ja schnell ;)
vielen dank euch beiden!
ch.
 
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
 
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.
 
Zuletzt bearbeitet:
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
 
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
 
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.
 
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
 
was auch immer das war, es hats gebracht!
zumindest bei denen die keine 2 suffixe haben :)

danke
 
Magst Du trotzdem die Erklärung wissen?

Das Script bennent die Files "zu schnell" um.
Dein Finder ist "zu langsam". ;-)

Viele Grüße
 
zu langsam? wo bitte kann ich mich beschweren ;)

das script löscht übrigens doppeltes suffix und erstellt dann nur das gewünschte, was ich als sehr positiv empfinde.

ch.
 
Zurück
Oben Unten