Ich möchte 40 PNG-Dateien in einem Ordner umbenennen. Sie haben sehr lange Namen. Sie werden fortlaufend wie folgt benannt: „blah...blah...blah160.png“, „blah...blah...blah200.png“, d. h. nach 40 alphanumerischen Zeichen folgt die dreistellige Seriennummer (160). Ich möchte, dass nur die letzten drei Ziffern im Dateinamen verbleiben. Aus „blah...blah...blah160.png“ soll also „160.png“ werden. Gibt es in Win 7 einen einfachen einzeiligen DOS-Befehl (cmd.exe)?
Antwort1
Die folgende Befehlsdatei sollte funktionieren:
@echo off & setlocal
for %%F in (*.png) do call :doIt %%F
goto xit
:doIt
set name=%~n1
set num=%name:~-3%
set ext=%~x1
set lentest=%name:~40,3%
if not [%lentest%]==[] (
copy "%1" %num%%ext%
:: del "%1"
)
goto :EOF
:xit
endlocal
Entfernen Sie das Kommentarzeichen aus der Zeile „del“, um die Version mit dem langen Namen tatsächlich zu löschen.
Es ist möglich, dies in weniger Zeilen zusammenzufassen, dies würde jedoch weniger verständlich machen.