45455

Dateinamen um vorgegebene Anzahl Zeichen in Klammern kürzen, Endung belassen

Bin nich so der Programmer, daher komm ich nicht so wirklich zum Ziel.
Das hier hab ich schon gefunden: Dateinamen kürzen
nun stolpere ich aber mit den Klammern als Suchzeichen.

Meine Aufgabe:
In mehreren Unterverzeichnissen wurde durch ein nicht mehr verfügbares Programm an jeden Dateinamen eine 16-stellige Zeichenkette in Klammern angehängt, Dateierweiterung blieb gleich.

Das sieht also so aus:
Aus "xxxx(a1b2c3d4e5f6g7h8).xyz" soll werden "xxxx.xyz"

Kann mir einer mal auf die Sprünge helfen?
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 85414

Url: https://administrator.de/forum/dateinamen-um-vorgegebene-anzahl-zeichen-in-klammern-kuerzen-endung-belassen-85414.html

Ausgedruckt am: 02.05.2025 um 11:05 Uhr

bastla
bastla 14.04.2008 um 08:58:12 Uhr
Goto Top
Hallo blue0711!

Das könnte etwa so gehen:
@echo off & setlocal
set "Basis=D:\Verzeichnis"  

for /f "delims=" %%i in ('dir /s /b *^(????????????????^).xyz') do call :ProcessFile "%%i"  
goto :eof

:ProcessFile
set "Name=%~n1"  
echo ren %1 "%Name:~0,-18%%~x1"  
goto :eof
Falls nicht nur der Dateityp ".xyz" betroffen sein sollte, diesen in der "for"-Zeile einfach durch ein anderes Suchmuster (oder * für alle Typen) ersetzen.

Das "echo" vor dem "ren" sorgt dafür, dass zunächst die Umbenennungsbefehle nur angezeigt werden - wenn Du es entfernst, werden sie tatsächlich ausgeführt.

Grüße
bastla
45455
45455 15.04.2008 um 03:06:20 Uhr
Goto Top
Perfekt - Danke face-smile
Lief für alle Eventualitäten einwandfrei durch.