sway38
допустим вот так
значит к именам всех файлов вглубь меняющей имя папки "papkaA" (на данном этапе) будет добавлено имя этой папки через знак нижнего подчеркивания (пример: было "file1.txt" стало "papkaA_file1.txt"). Этот знак вынес в переменную на случай, если он уже присутствует в именах файлов, то использовать его нельзя и надо заменить на другой допустимый в именах, например: "-"
Код:
Код: Выделить всё
@echo off
set "sh=_"
call :# "papkaA"
pause& exit
:#
setlocal enabledelayedexpansion
if exist "%~1" for /f "delims=" %%f in ('dir /a-d/b/s "%~1"') do set "nf=%%f"& echo "%%f"|>nul find "%sh%" && ren "%%f" "%~1%sh%!nf:*%sh%=!" || ren "%%f" "%~1%sh%%%~nxf"
endlocal
exit /b
т.е. после запуска можете поменять имя основной папки на "papkaB" и запустить повторно, у всех файлов (а они примут вид: "papkaA_file1.txt" после первого запуска) имя изменится на: "papkaB_file1.txt"
(кодировка у меня везде 866 и не забываем про "_", перед первым запуском его не должно быть в именах файлов)