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

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

Ветеран


Contributor


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

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


Iska, А зачем двойной цикл? Можно так:
Код: Выделить весь код
@Echo Off
	Set "BoxArc=Z:\Box_ARC"
	Set "Mask=Название бэкапа базы_20??????.bd"
	Set /A NSave=5
	FOR /F "usebackq skip=%Nsave% delims=" %%f IN (`2^>nul Dir "%BoxArc%\%Mask%" /B /A:-D /O:-N`) DO Echo Del "%BoxArc%\%%f"
Exit /B
Имхо, еще лучше так:
Код: Выделить весь код
@Echo Off
	Call :DelData "Z:\Box_ARC\Название бэкапа базы_20??????.bd" 5
Exit /B

:DelData
	FOR /F "usebackq skip=%2 delims=" %%f IN (`2^>nul Dir %1 /B /A:-D /O:-N`) DO Echo Del "%~dp1%%f"
Exit /B
Особенно если надо обработать бэкапы нескольких баз
Цитата Iska:
Для реального удаления уберите echo. »

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


Последний раз редактировалось megaloman, 15-08-2019 в 12:57.


Отправлено: 12:43, 15-08-2019 | #10