Я хочу переименовать 40 png файлов в одну папку, они имеют очень длинные имена. Они называются последовательно так: «бла ... бла ... бла160.png», «бла ... бла ... бла200.png», т.е. после 40 буквенно-цифровых символов серийный номер состоит из трех цифр (160), Я хочу, чтобы в имени файла оставались только последние три цифры, поэтому «blah ... blah ... blah160.png» должно стать «160.png», есть ли простая однострочная команда DOS (cmd.exe) в win 7?

1 ответ1

0

Следующий cmd-файл должен сделать эту работу:

@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

Раскомментируйте строку "del", чтобы фактически удалить версию с длинным именем.

Можно сжать это в меньшее количество строк, но это сделало бы это менее понятным.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .