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

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

Ветеран


Contributor


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

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


Цитата fabble86@vk:
Нужно чтобы данный батник работал в конкретной папке. »
Указывайте конкретные папки и маску в Call :DirBack
Код: Выделить весь код
@Echo Off

Call :DirBack "Z:\Box_Arc\Папка с бэкапами 1\" "20??_??_??_*.dt"
Call :DirBack "Z:\Box_Arc\Папка с бэкапами 2\" "20??_??_??_*.dt"
Call :DirBack "Z:\Box_Arc\Папка с бэкапами 3\" "20??_??_??_*.dt"

GoTo :Eof

:DirBack
	Set "Last="
	Set "Ext="
	FOR /F "usebackq tokens=1,2,3* delims=_" %%i IN (`Dir /B /A:-D /O:EN "%~1%~2" 2^>nul`) DO Call :DelBack "%~1" "%%i" "%%j" "%%k" "%%l"
GoTo :Eof

:DelBack
	If "%Last%"=="%~2%~3" If "%Ext%"=="%~x5" Del "%~1%~2_%~3_%~4_%~5" &GoTo :Eof
        Set "Last=%~2%~3"
	Set "Ext=%~x5"
GoTo :Eof
Цитата fabble86@vk:
а чтобы батник работал в конкретной папке, в которой он находится.... ? »
В этом случае оставьте один
Call :DirBack
Код: Выделить весь код
Call :DirBack "%~dp0" "20??_??_??_*.dt"
Если в папке находятся файлы по датам с разным расширением, и по каждому расширению надо оставить только один файл за месяц, укажите маску
"20??_??_??_*.*"

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


Последний раз редактировалось megaloman, 12-12-2017 в 14:28.


Отправлено: 13:21, 12-12-2017 | #7