45455
Apr 13, 2008, updated at Oct 17, 2012 (UTC)
6896
2
0
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?
Please also mark the comments that contributed to the solution of the article
Content-Key: 85414
Url: https://administrator.de/contentid/85414
Printed on: April 19, 2024 at 14:04 o'clock
2 Comments
Latest comment
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