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-Key: 112416

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

Printed on: April 23, 2024 at 08:04 o'clock

Member: bastla
bastla Mar 26, 2009 at 09:49:51 (UTC)
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
Member: fischkopf
fischkopf Mar 26, 2009 at 11:40:03 (UTC)
Goto Top
Hallo bastla,
klasse - klappt bestens. Tausend Dank!

fischkopf
Member: Iceman
Iceman Mar 30, 2011 at 12:04:32 (UTC)
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
Member: bastla
bastla Mar 30, 2011 at 15:14:56 (UTC)
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
Member: Iceman
Iceman Mar 31, 2011, updated at Oct 18, 2012 at 16:46:18 (UTC)
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