PDA

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


Вова.Неневолин@vk
18-08-2019, 08:38
Ребята, привет всем, помогите пожалуйста.
Есть папка, в ней находятся еще 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
18-08-2019, 11:11
Если тупо сплошная нумерация без учета сортировки по датам и подпапкам@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
18-08-2019, 11:51
@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
18-08-2019, 18:34
Вова.Неневолин@vk,
и нумерацию делает в скобках »
(мой код приведен в примере, потому и отвечаю)
на другом форуме в скобках вы именно и просили, сложно было попросить там переделать?

@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




© OSzone.net 2001-2012