Sonderzeichen im Dateinamen ändern

Cartman999

Lieutenant
Registriert
Aug. 2007
Beiträge
795
Gibt es ein Programm mit dem ich das erste Zeichen im Dateinamen von ca. 1500 Dateien ändern kann? Es handelt sich um .jpg Dateien und ein Sonderzeichen soll durch ein "I" ersetzt werden. Die Fotos sind alle im gleichen Ordner.
 
Ant Renamer - funktioniert tadellos und kinderleicht^^
 
Da ich nicht weiß mit welchem OS du arbeitest, hier mal der Lösungsweg unter Linux:

im Terminal ausführen:
Code:
cd /Ordner/mit/den/Bildern
rename 's/\Sonderzeichen$/I/' *.jpg

mit cd in den Ordner springen

dort mit rename alle .jpg Dateien die "Sonderzeichen" enthalten umbenennen und "Sonderzeichen" durch "I" ersetzen.
 
Für Windows

Code:
for /F "delims=;" %i IN ('dir /b *.jpg') do (
set myFile=%i
ren "%i" "%myFile:~2,100%"
)
 
geht für Windows auch einfacher...

123456$.jpg

Code:
ren c:\??????$.jpg ??????.jpg

einfach alles was nicht ersetzt werden soll durch fragezeichen ersetzen und los gehts.
 
@Benzer: Schicke Lösung. Damit kannst du jedoch nur am Ende ein Zeichen abschneiden. Wie willst du das Sonderzeichen zu Beginn des Dateinamens damit abschneiden?
 
@easy.2ci:
Deine Windows Lösung sieht interessant aus, da ich selten mit Win arbeite verstehe ich sie nicht ganz, könntest du sie ein wenig erläutern, z.B.:
"delims=;" sowie "%myFile:~2,100%" sind mir unklar

EDIT:
"delims=;" habe ich inzwischen verstanden: du separierst die Zeichen mit ";"

aber das "~2,100%" wundert mich noch
 
Zuletzt bearbeitet:
unXtremo schrieb:
Da ich nicht weiß mit welchem OS du arbeitest, hier mal der Lösungsweg unter Linux:

im Terminal ausführen:
Code:
cd /Ordner/mit/den/Bildern
rename 's/\Sonderzeichen$/I/' *.jpg

mit cd in den Ordner springen

dort mit rename alle .jpg Dateien die "Sonderzeichen" enthalten umbenennen und "Sonderzeichen" durch "I" ersetzen.

Ich habe OS X auf meinem Laptop, jedoch kann ich die Fotos auch mit einer externen Festplatte an einen Windows XP Rechner hängen.

@easy.2ci
Funktioniert dein Code nur wenn die Fotos auf der internen Festplatte liegen oder geht das auch mit einer externen Platte?
 
Wenn ich das Terminal öffne steht das hier da:
Laptop:~ mein Benutzername$

Was muss ich nun eingeben um auf den Ordner "Fotos" zugreifen zu können der sich auf dem Schreibtisch befindet?
 
unXtremo schrieb:
"delims=;" habe ich inzwischen verstanden: du separierst die Zeichen mit ";"

aber das "~2,100%" wundert mich noch


Mit delims gibt man delimiter an. Ohne diese Angabe wären die Standard delimiter das Komma und Leerzeichen. Wenn eine Datei also Leerzeichen enthält, dann ist der erste Teil der Datei bereits Teil 1 der Liste und der Dateiname wird so getrennt.

Um mit Dateien die Leerzeichen enthalten umzugehen setze ich den delimiter auf Semikolon, denn das Zeichen kommt niemals im Dateinamen vor. So enthält %i immer den kompletten Dateinamen.

Die Syntax %var:~1,100% steht in der Hilfe zu set. ---> set /?
Heisst soviel wie schneide das erste Zeichen ab und nimm die nächsten 100.


Allerdings klappt mein Code irgendwie nicht. Ich steh selbst grad auf dem Schlauch. Ich hatte vor kurzem mal eine Lösung fürs Ordner umbenennen entworfen, die funktionierte einwandfrei. Davon hab ichs abgeleitet, aber das Setzen der Variablen mit set wird nicht immer durchgeführt, so daß der Zielname beim Umbennen manchmal gleich bleibt und dann die Meldung kommt, der Name sei schon vorhanden.

Hier der Link zu meiner funktionierenden Lösung zum Ordner umbenennen:
https://www.computerbase.de/forum/threads/buchstaben-eines-ordnernamens-entfernen.906218/



@Cartman: Wenn der Code funktioniern würde, dann in jedem Ordner. Aber halt nicht unter Mac OS.
 
@easy.2ci: Danke für deine Erläuterung!
@Cartman999: Es ist zwar schon etwas länger her, aber wenn du das Problem noch nicht lösen konntest:
Wie ich in meinem Post oben geschrieben habe musst du mit cd (steht für Change Directory) in das richtige Verzeichnis springen (da wo die Bilder liegen)

Wenn du das Terminal öffnest wird dir immer angegeben wo du dich gerade befindest in diesem Fall steht ~ (Tilde) für dein "Home-Verzeichnis" also den Ordner deines Benutzers

Du müsstest also in den Ordner "Fotos" auf dem Schreibtisch springen, ich bin mir jetzt nicht sicher aber du kannst den Pfad ja gegebenenfalls anpassen:

Code:
cd Desktop/Fotos/

Dann bist du in dem Ordner indem die Bilder liegen, jetzt müsstest du einfach den von mir bereits erwähnten Befehl eingeben:

Code:
rename 's/\Sonderzeichen$/I/' *.jpg
 
Zuletzt bearbeitet: (Rechtschreib korrektur)
Hi zusammen,

ich habe ein sehr interessantes Problem.
Ich habe über einen Satreceiver ein paar TV-Serien aufgenommen um Sie sehen zu können wenn ich nach Hause komme. Jetzt folgendes Problem, der Receiver hat ne neue Firmware, welche ich auch nicht wieder wegmachen möchte, diese kann die Filme unter Ext2 (siehe unten) nicht erkennen und wollte die Filme einfach auf ein anderes Medium kopieren welches erkannt wird. Leider scheitert das am folgenden Problem.

Problem ist folgendes:

Platte ist in einem modifizierten Ext2 formatiert, (32K Blocksize)
Damit unter Linus nicht mountbar.
Unter Windows mit Ext2fsd-Treiber mountbar.
Allerdings habe ich in den Dateinamen Sonderzeichen, wie einen ":" (Doppelpunkt)
Das bewirkt, das ich die Teile nicht umbenennen kann, weil der beim Zugriff immer glaubt das der Doppelpunkt nen Ordner ist...

Auch diverse Versuche mit verschiedensten Umbenenntools wie z.B. Ant-Renamer oder TotalCommander scheiterten bei dem Versuch die Datei Umbenennen zu wollen.

Auch mit Cygwin hatte ich kein Erfolg.

Beispiel unter Cygwin:

Muster@Muster-PC /cygdrive/g/datatsfiles
$ mv csi:ny.rec csiny.rec
mv: cannot stat `csi:ny.rec': No such file or directory

Muster@Muster-PC /cygdrive/g/datatsfiles
$ mv csi:ny.001 csiny-a.rec
mv: cannot stat `csi:ny.001': No such file or directory

Muster@Muster-PC /cygdrive/g/datatsfiles
$ mv ACSI: Den Tõtern auf der Spur.001 csi-denT.rec
mv: target `csi-denT.rec' is not a directory


Soviel zu meinen Versuchen, ich weis nicht so recht weiter...
Achja, wer die Befehle nicht kennen sollte, unter Cygwin gibt es keinen "Rename" Befehl, daher muss man mit "move" -> "mv" arbeiten.

Ich hoffe Ihr könnt mir helfen, achja und falls ich im falschen Forenbereich bin, bitte verschieben.

Vielen Dank schonmal,

Gruß Fly
 
Zurück
Oben