Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Переименовать файлы и поменять формат файлов

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

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Ребята, привет всем, помогите пожалуйста.
Есть папка, в ней находятся еще 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

Очень прошу, выручайте братцы!!!!!!!

Отправлено: 08:38, 18-08-2019

 

Ветеран


Contributor


Сообщения: 2708
Благодарности: 1684

Профиль | Отправить PM | Цитировать


Если тупо сплошная нумерация без учета сортировки по датам и подпапкам
Код: Выделить весь код
@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:25.

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:11, 18-08-2019 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Ветеран


Contributor


Сообщения: 2708
Благодарности: 1684

Профиль | Отправить PM | Цитировать


Если переименовывать так, чтобы файлы нумеровались от более старой даты к более новой сплошняком по всем папкам
Код: Выделить весь код
@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

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 11:51, 18-08-2019 | #3


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Вова.Неневолин@vk,
Цитата Вова.Неневолин@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
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:34, 18-08-2019 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Переименовать файлы и поменять формат файлов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Переименовать файлы в папке zion87 Скриптовые языки администрирования Windows 4 05-01-2020 01:11
CMD/BAT - [решено] Переименовать файлы Alexander_88 Скриптовые языки администрирования Windows 4 05-07-2019 11:26
PowerShell - Переименовать файлы XML al-1k Скриптовые языки администрирования Windows 11 15-05-2017 19:37
CMD/BAT - Переименовать и переместить файлы vider Скриптовые языки администрирования Windows 7 12-05-2013 16:35
Поменять формат текста bona Программное обеспечение Windows 3 19-11-2007 00:35




 
Переход