
45455
13.04.2008, aktualisiert am 17.10.2012
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?
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?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
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
2 Kommentare
Neuester Kommentar
Hallo blue0711!
Das könnte etwa so gehen:
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
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
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