CMD/BAT - [решено] Нужно удалить лог файлы старше 30 дней

Аватара пользователя
ksv_sergo

CMD/BAT - [решено] Нужно удалить лог файлы старше 30 дней

Сообщение ksv_sergo »

Доброе времья суток.



Помогите с батником.

Имеються лог файлы большого размера, их нужно удалять но только не все а те которые старше 30-40 дней.

C:\PROGRAMM\logs





so_110401.dmp

Results_110331.dmp
Аватара пользователя
white155

Re: CMD/BAT - [решено] Нужно удалить лог файлы старше 30 дней

Сообщение white155 »

Синтаксис

forfiles [/p путь] [/m маска_поиска] [/s] [/c команда] [/d[{+ | -}] [{ММ/ДД/ГГГГ | ДД}]]



Forfiles -p c:\backup -s -m *.* -d -5 -c "cmd /c del /q @path"
Аватара пользователя
ksv_sergo

Re: CMD/BAT - [решено] Нужно удалить лог файлы старше 30 дней

Сообщение ksv_sergo »

вот только правильно не могу параметры задать, постоянно всяческие ошибки выдает, то время не то, то маска не работает
Аватара пользователя
white155

Re: CMD/BAT - [решено] Нужно удалить лог файлы старше 30 дней

Сообщение white155 »

надо удалять все файлы в папке созданные ранее одной недели

forfiles /p C:\backup\ /m *.* /s /c "del /F /Q" /d -7



выходит ошибка, не может найти указанный файл, что-то не так с командой del
Аватара пользователя
white155

Re: CMD/BAT - [решено] Нужно удалить лог файлы старше 30 дней

Сообщение white155 »

С командой «del» всё в порядке:



Код:

Код: Выделить всё

… -c"%comspec% /c echo @PATH\@FILE" …

Просто Вы плохо прочитали
CMD/BAT - [решено] Нужно удалить лог файлы старше 30 дней
.



Команда «del» — не внешняя программа, а реализована как внутренняя команда командного процессора, потому работоспособна только из-под него.
Аватара пользователя
ksv_sergo

Re: CMD/BAT - [решено] Нужно удалить лог файлы старше 30 дней

Сообщение ksv_sergo »

Посоветуйте ещё как удалить папки старше 30 дней ???

Или как удалить только пустые папки в которых нету файлов



Сперва не досмотрел в папке C:\PROGRAMM\logs есть также папки типа - 2010_06_06 (гггг_мм_дд)



Как их удалить, но не все, нужно чтобы остальсь за последние 30 дней (можно ли както привязаться по дате сосданию, а не по названию)
Аватара пользователя
dmitryst

Re: CMD/BAT - [решено] Нужно удалить лог файлы старше 30 дней

Сообщение dmitryst »

Сваял похожий скрипт:



del_old.cmd:



Код:

Код: Выделить всё

forfiles /p "Z:\SQL_back" /S /D -5 /C "cmd /c del /f /a /q @file"

Закинул в планировщик Windows 2008 R2, ошибок не выдает, но и не удаляет нифига.... Вручную запускаю del_old.cmd - всё удаляется. В чем может быть подвох? Z: - примонтированный сетевой диск, если что.
Аватара пользователя
Elven

Re: CMD/BAT - [решено] Нужно удалить лог файлы старше 30 дней

Сообщение Elven »

походу запуск в шедулере проходит для незарегистрированного пользователя. или используй абсолютное сетевое имя или перед forfiles используй net use. есть еще вариант что для пользователя от имени которого выполняется задача в шедулере нету доступа к шаре, тогда только вариант с net use с именем пользователя и пароля.





Код:

Код: Выделить всё

forfiles /p "\\server\share\SQL_back" /S /D -5 /C "cmd /c del /f /a /q @file"



Код:

Код: Выделить всё

net use Z: \\server\share /user:domain\user password
forfiles /p "Z:\SQL_back" /S /D -5 /C "cmd /c del /f /a /q @file"
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Нужно удалить лог файлы старше 30 дней

Сообщение Iska »

Цитата dmitryst:



В чем может быть подвох? Z: - примонтированный сетевой диск, если что.
CMD/BAT - [решено] Нужно удалить лог файлы старше 30 дней




Именно в этом и может быть.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»