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