Имя пользователя:
Пароль:
 

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

Ветеран


Contributor


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

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


Alexander_88,
Не важно, есть ли расширение или дефисы. Важно чтобы файл по указанной маске был единственный. Маска для файла без расширения должна завершаться точкой.
Код: Выделить весь код
@Echo Off

Set "InFile=Z:\Box_In\ok likes 2 - *." 

FOR %%f IN ("%InFile%") DO (Set "Full=%%f" &Set "NFile0=%%~nf"  &Set "Ext=%%~xf")
If "%Full%"=="" Exit /B 2

Set "NFile=%NFile0: =z%"
Set "NFile=%NFile:-=z%"

FOR /L %%i IN (1,1,9999) DO Call Set /A M=1%%NFile:~-%%i%%*10 2>nul ||(Set /A N=%%i &GoTo :Cont)
:Cont
If %N% EQU 1 Exit /B 1

Set /A N=%N%-1

Call Set /A M=%%NFile0:~-%N%%%*1
If %M% EQU 0 Exit /B 0
Set /A M=%M%-1

Call Set "NFile=%%NFile0:~0,-%N%%%%M%%Ext%"

Ren "%Full%" "%NFile%" ||Exit /B 4
Exit /B 0

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


Последний раз редактировалось megaloman, 01-04-2018 в 22:39.

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

Отправлено: 21:02, 01-04-2018 | #5