CMD/BAT - Переименовать файлы и поменять формат файлов

Ответить
Аватара пользователя
Вова.Неневолин@vk

CMD/BAT - Переименовать файлы и поменять формат файлов

Сообщение Вова.Неневолин@vk »

Ребята, привет всем, помогите пожалуйста.

Есть папка, в ней находятся еще 30 папок, в этих папках примерно по 200-250 файлов (VP-BAI_20190731_224209.tsc)

Необходимо что бы он поменял название, взяв из старого названия в такой формат и добавил нумерацию: VP-BAI_31.07.19.1.txt

Есть код, но он не менять формат файла, и нумерацию делает в скобках:

@echo off

set "d0=C:\Users\Dovolin\Desktop\azaza"



for /f "delims=" %%d in ('dir /ad/b/s "%d0%"') do (

pushd "%%d"

for /f "tokens=1,2* delims=_" %%a in ('dir /a-d/b') do set /a n+=1& set "odt=%%b"& call :rn "%%a_%%b_%%c" "%%a" "%%n%%" "%%~xc"

popd

)

pause& exit



:rn

set "d=%odt:~6,2%"&

set "M=%odt:~4,2%"&

set "yy=%odt:~2,2%"

ren "%~1." "%~2_%d%.%M%.%yy%(%~3)%~4"

exit /b



Очень прошу, выручайте братцы!!!!!!!
Аватара пользователя
megaloman

Re: CMD/BAT - Переименовать файлы и поменять формат файлов

Сообщение megaloman »

Если тупо сплошная нумерация без учета сортировки по датам и подпапкам

Код:

Код: Выделить всё

@Echo Off
cls
	Set "BoxIn=Z:\Box_In"
	Set "Mask=VP-BAI_20*_*.tsc"
	Set "NewExt=txt"
	Set /A N=0
	FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%BoxIn%\%Mask%" /B /A:-D /S`) DO (
		FOR /F "tokens=1,2 delims=_" %%c IN ("%%~nf") DO Call :MyRen "%%f" "%%c" "%%d"
	)
Exit /B
:MyRen
	Set /A N+=1
	Set "dd=%~3"
	Ren %1 "%~2_%dd:~6,2%.%dd:~4,2%.%dd:~0,4%.%N%.%NewExt%"
Exit /B
Аватара пользователя
megaloman

Re: CMD/BAT - Переименовать файлы и поменять формат файлов

Сообщение megaloman »

Если переименовывать так, чтобы файлы нумеровались от более старой даты к более новой сплошняком по всем папкам

[spoiler]Код:
[/spoiler]

Код: Выделить всё

@Echo Off
	Set "BoxIn=Z:\Box_In"
	Set "Mask=VP-BAI_20*_*.tsc"
	Set "NewExt=txt"
	FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%BoxIn%\%Mask%" /B /A:-D /S`) DO (
		FOR /F "tokens=1,2 delims=_" %%c IN ("%%~nf") DO Set "@@%%d=%%c_%%d_*%%~xf=%%c=%%d"
	)
	Set /A N=0
	FOR /F "usebackq tokens=2,3,4 delims==" %%a IN (`2^>nul Set "@@"`) DO (
		FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%BoxIn%\%%a" /B /A:-D /S`) DO (
			Call :MyRen "%%f" "%%b" "%%c" 
		)
	)
Exit /B
:MyRen
	Set /A N+=1
	Set "dd=%~3"
	Ren %1 "%~2_%dd:~6,2%.%dd:~4,2%.%dd:~0,4%.%N%.%NewExt%"
Exit /B
Аватара пользователя
alpap

Re: CMD/BAT - Переименовать файлы и поменять формат файлов

Сообщение alpap »

Вова.Неневолин@vk,


Цитата Вова.Неневолин@vk:



и нумерацию делает в скобках
CMD/BAT - Переименовать файлы и поменять формат файлов




(мой код приведен в примере, потому и отвечаю)

на другом форуме в скобках вы именно и просили, сложно было попросить там переделать?



Код:

Код: Выделить всё

@echo off
set "d0=C:\Papka"
set "ext=txt"
for /f "delims=" %%d in ('dir /ad/b/s "%d0%"') do (
 pushd "%%d"
  for /f "tokens=1,2* delims=_" %%a in ('dir /a-d/b') do set /a n+=1& set "odt=%%b"& call :rn "%%a_%%b_%%c" "%%a" "%%n%%" "%ext%"
 popd
)
pause& exit
:rn
 set "d=%odt:~6,2%"& set "M=%odt:~4,2%"& set "yy=%odt:~2,2%"
 ren "%~1" "%~2_%d%.%M%.%yy%.%~3.%~4"
exit /b
Ответить

Вернуться в «Скриптовые языки администрирования Windows»