Показать полную графическую версию : Пакетное переименование файлов по маске
Viktor99
15-08-2016, 21:56
Можно ли автоматоматически переименовать файлы в папках, по такой маске: "Имя папки + порядковый номер"? В корне диска находится много папок, около 150 штук. В каждой папке несколько файлов, с именами 1.2.3...n. Например, есть папка "Пастушка и рыцарь", в ней файлы 01,02,03,04,05. Нужно чтобы после переменования файлы были: Пастушка и рыцарь_01, Пастушка и рыцарь_02... и так для каждой папки, но чтобы это одним разом сделать можно было. Заранее благодарен за любую помощь.
_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
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.