PDA

Показать полную графическую версию : Пакетное переименование файлов по маске


Viktor99
15-08-2016, 21:56
Можно ли автоматоматически переименовать файлы в папках, по такой маске: "Имя папки + порядковый номер"? В корне диска находится много папок, около 150 штук. В каждой папке несколько файлов, с именами 1.2.3...n. Например, есть папка "Пастушка и рыцарь", в ней файлы 01,02,03,04,05. Нужно чтобы после переменования файлы были: Пастушка и рыцарь_01, Пастушка и рыцарь_02... и так для каждой папки, но чтобы это одним разом сделать можно было. Заранее благодарен за любую помощь.

alpap
15-08-2016, 23:25
_01 »
согласно этому пожеланию, если файлов в папке не более 99

@echo off
set "d=C:\osn_papka"
for /f "delims=" %%a in ('dir/ad/b "%d%"') do (
setlocal enabledelayedexpansion
pushd "%d%\%%a"
for /f "delims=" %%b in ('dir/a-d/b') do set/a n+=1& set m=0!n!& echo %d%\%%a_!m:~-2!%%~xb
popd
endlocal
)
exit


если не более 999

@echo off
set "d=C:\osn_papka"
for /f "delims=" %%a in ('dir/ad/b "%d%"') do (
setlocal enabledelayedexpansion
pushd "%d%\%%a"
for /f "delims=" %%b in ('dir/a-d/b') do set/a n+=1& set m=00!n!& echo %d%\%%a_!m:~-3!%%~xb
popd
endlocal
)
exit


далее понятно

если 0 в начале не требуется (_1, _2, ... , _99), чуток проще:

@echo off
set "d=C:\osn_papka"
for /f "delims=" %%a in ('dir/ad/b "%d%"') do (
setlocal enabledelayedexpansion
pushd "%d%\%%a"
for /f "delims=" %%b in ('dir/a-d/b') do set/a n+=1& echo %d%\%%a_!n!%%~xb
popd
endlocal
)
exit




© OSzone.net 2001-2012