Umbenennen via Batch - Zeichen am Ende des Dateinamens entfernen
Hallo,
ich möchte Dateien in einem Verzeichnis umbenennen, und zwar sollen am Ende des Dateinamens die Zeichenfolgen _1 und _2 entfernt werden. Im Original sehen die Dateien in etwa so aus:
11484023_1.tif
11484644288_1.tif
11484623423422_2.tif
etc. Mit Eurer Hilfe (eine frühere Anfrage von mir...) habe ich bereits folgende Batch entwickelt:
Die bisherige Batch funktioniert tadellos, es wird geprüft, ob an der dritten Stelle des Dateinamens bereits ein Unterstrich steht, wenn nicht wird vorne an den Dateinamen eine fixe Zeichenfolge angeklemmt (im Beispiel "AB_CDE_". Nun muss ich auch noch prüfen, ob am Ende des Dateinamens (also vor dem Punkt) eine Zeichenfolge wie _1 oder _2 steht. Ich hatte mir das zunächst einfach vorgestellt und die Idee, einfach eine rename-Zeile nach dem ersten rename in der Sub einzufügen und nach der Zeichenfolge _1. oder _2. zu suchen und diese durch . (Punkt) ersetzen zu lassen. Leider war ich damit nicht erfolgreich, könntet Ihr mich auf das richtige Gleis bringen und Tipps dazu gebe? Danke!
ich möchte Dateien in einem Verzeichnis umbenennen, und zwar sollen am Ende des Dateinamens die Zeichenfolgen _1 und _2 entfernt werden. Im Original sehen die Dateien in etwa so aus:
11484023_1.tif
11484644288_1.tif
11484623423422_2.tif
etc. Mit Eurer Hilfe (eine frühere Anfrage von mir...) habe ich bereits folgende Batch entwickelt:
@echo off & setlocal
Set "myTIFDir=c:\test99"
FOR %%i in ( "%myTIFDir%\*.tif") do call :RenameWithUnderscore "%%~nxi"
exit
goto :eof
:RenameWithUnderscore
Set "oldname=%~1"
IF "%oldname:~2,1%" NEQ "_" (
ren "%myTIFDir%\%oldname%" "AB_CDE_%oldname%"
)
goto :eof
Die bisherige Batch funktioniert tadellos, es wird geprüft, ob an der dritten Stelle des Dateinamens bereits ein Unterstrich steht, wenn nicht wird vorne an den Dateinamen eine fixe Zeichenfolge angeklemmt (im Beispiel "AB_CDE_". Nun muss ich auch noch prüfen, ob am Ende des Dateinamens (also vor dem Punkt) eine Zeichenfolge wie _1 oder _2 steht. Ich hatte mir das zunächst einfach vorgestellt und die Idee, einfach eine rename-Zeile nach dem ersten rename in der Sub einzufügen und nach der Zeichenfolge _1. oder _2. zu suchen und diese durch . (Punkt) ersetzen zu lassen. Leider war ich damit nicht erfolgreich, könntet Ihr mich auf das richtige Gleis bringen und Tipps dazu gebe? Danke!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 112416
Url: https://administrator.de/contentid/112416
Ausgedruckt am: 15.11.2024 um 03:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo fischkopf!
Sollte sich (soferne der Underscore immer das vorletzte Zeichen ist) so machen lassen:
Grüße
bastla
Sollte sich (soferne der Underscore immer das vorletzte Zeichen ist) so machen lassen:
@echo off & setlocal
Set "myTIFDir=c:\test99"
FOR %%i in ( "%myTIFDir%\*.tif") do call :RenameWithUnderscore "%%i"
goto :eof
:RenameWithUnderscore
set "newname=%~n1"
if "%newname:~2,1%" NEQ "_" set "newname=AB_CDE_%newname%"
if "%newname:~-2,1%"=="_" set "newname=%newname:~,-2%"
ren %1 "%newname%%~x1"
goto :eof
bastla
Hey.
und wie müsste der Code aussehen, wenn man am Anfang der Datei zB. 8 Zeichen entfernen möchte.
Bsp.
Variante Datei!
Alte Datei:
08158150Dokument.txt
Neue Datei:
Dokument.txt
Variante Ordner!
Alter Ordner:
08158150Programmordner
Neuer Ordner:
Programmordner
Wie sehe das aus?
Besten dank im Voraus.
PS. wenn ich eine neue Frage erstellen soll, dann bitte anmailen. Danke
Gruß Ice
und wie müsste der Code aussehen, wenn man am Anfang der Datei zB. 8 Zeichen entfernen möchte.
Bsp.
Variante Datei!
Alte Datei:
08158150Dokument.txt
Neue Datei:
Dokument.txt
Variante Ordner!
Alter Ordner:
08158150Programmordner
Neuer Ordner:
Programmordner
Wie sehe das aus?
Besten dank im Voraus.
PS. wenn ich eine neue Frage erstellen soll, dann bitte anmailen. Danke
Gruß Ice
Hallo Iceman!
Ja, ein neuer Thread wäre sinnvoll - dort kannst Du dann auch die näheren Umstände erklären (zB ob es, wie bei den hier besprochenen Dateien ein Kennzeichen dafür gibt, dass sie bereits umbenannt wurden, oder ob es etwa immer 8 Ziffern sind, die am Anfang stehen und entfernt werden sollen bzw ob sich die Unterteilung anhand eines Trennzeichens machen ließe) ...
Grüße
bastla
Ja, ein neuer Thread wäre sinnvoll - dort kannst Du dann auch die näheren Umstände erklären (zB ob es, wie bei den hier besprochenen Dateien ein Kennzeichen dafür gibt, dass sie bereits umbenannt wurden, oder ob es etwa immer 8 Ziffern sind, die am Anfang stehen und entfernt werden sollen bzw ob sich die Unterteilung anhand eines Trennzeichens machen ließe) ...
Grüße
bastla
Moin bastla...
Das hat sich erledigt.
Habe meine Fragen soweit beantwortet
Ordnernamen kürzen
Ordnernamen kürzen
Dateinamen per Batch um x Zeichen am Anfang kürzen
Dateinamen per Batch um x Zeichen am Anfang kürzen
Gruß Ice
Das hat sich erledigt.
Habe meine Fragen soweit beantwortet
Ordnernamen kürzen
Ordnernamen kürzen
Dateinamen per Batch um x Zeichen am Anfang kürzen
Dateinamen per Batch um x Zeichen am Anfang kürzen
Gruß Ice