fischkopf
Goto Top

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:

@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!

Content-ID: 112416

Url: https://administrator.de/contentid/112416

Ausgedruckt am: 15.11.2024 um 03:11 Uhr

bastla
bastla 26.03.2009 um 10:49:51 Uhr
Goto Top
Hallo fischkopf!

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
Grüße
bastla
fischkopf
fischkopf 26.03.2009 um 12:40:03 Uhr
Goto Top
Hallo bastla,
klasse - klappt bestens. Tausend Dank!

fischkopf
Iceman
Iceman 30.03.2011 um 14:04:32 Uhr
Goto Top
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
bastla
bastla 30.03.2011 um 17:14:56 Uhr
Goto Top
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
Iceman
Iceman 31.03.2011, aktualisiert am 18.10.2012 um 18:46:18 Uhr
Goto Top
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