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

Показать сообщение отдельно

Ветеран


Contributor


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

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


Цитата Iska:
а что будет, если потом опять создадут image(1).png, image(2).png, …? »
Ключевое слово: потом. Всё таки, ИМХО, надо не отвечать на вопрос, как он поставлен, а пытаться въехать в задачу. ИМХО (мои домыслы) второй файл не может быть создан ранее первого. Поэтому надо не изменять то, что в скобках (1) (2) и т д., а переименовывать все файлы чохом в сортировке по времени
Код: Выделить весь код
@Echo Off
cls
	Set "BoxIn=Z:\Box_In"
	Set "Name=тра ля ля"
	Set "Ext=png"
	Set /A Len=4
	
	Pushd "%BoxIn%" ||(Echo Folder "%BoxIn%" not found &Pause &Exit /B 1) 
	
	Set /A Num=100000000
	For /F "usebackq tokens=2 delims=()" %%n In (`2^>nul Dir "%BoxIn%\%Name%(*).%Ext%" /B /A:-D /O:D`) Do (
		Set /a Num+=1
		Call Ren "%Name%(%%n).%Ext%" "tmp.%Name%(%%Num:~-%Len%%%).%Ext%"
	)
	For /F "usebackq tokens=1* delims=." %%i In (`2^>nul Dir "%BoxIn%\tmp.%Name%(*).%Ext%" /B /A:-D`) Do Ren "tmp.%%j" "%%j"
	Popd
Pause		
Exit /B

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

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

Отправлено: 10:00, 14-09-2021 | #10