Вот другая возможная команда для рекурсивного переименования файлов без расширений (при условии, что пути к файлам не содержат пробелов ):
for /f %i in ('dir *. /b /s /a-d') do rename "%~fi" "%~ni.bla"
Пакетная версия (с удвоением %
):
@echo off
for /f %%i in ('dir *. /b /s /a-d') do (
rename "%%~fi" "%%~ni.bla"
)
Если имена файлов или папок содержат пробелы , используйте эту команду вместо:
for /f "tokens=* delims= " %i in ('dir *. /b /s /a-d') do rename "%~fi" "%~ni.bla"
Пакетная версия:
@echo off
for /f "tokens=* delims= " %%i in ('dir *. /b /s /a-d') do (
rename "%%~fi" "%%~ni.bla"
)
Редактировать: вот еще более короткая однострочная строка, которая поддерживает пробелы в путях:
for /r %i in (*.) do ren "%~fi" "%~ni.bla"
Пакетная версия:
@for /r %%i in (*.) do ren "%%~fi" "%%~ni.bla"