Umbenennen mehrerer Dateien mit nur einem Teil des ursprünglichen Dateinamens

Umbenennen mehrerer Dateien mit nur einem Teil des ursprünglichen Dateinamens

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.

verwandte Informationen