|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - VBS удаление файлов в папке по определенному имени и дате старше n |
|
VBS/WSH/JS - VBS удаление файлов в папке по определенному имени и дате старше n
|
Новый участник Сообщения: 3 |
Всем доброго времени суток.
Прошу оказать помощь в написании скрипта на VBS. Сам в VBS к сожалению полный 0. Нужно очистить папку с файлами старых логов. Сами файлы с расширением .txt и .log и они должны удаляться старше определенной даты. Пример файлов: Log_01.02.2017.log удаление старше 15.03.2018 Print_[12052013].txt удаление старше 01.01.2016 |
|
Отправлено: 19:01, 23-03-2018 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Call DelOldFile("Z:\Box_In", "^log.*\.log$", "15.03.2018") Call DelOldFile("Z:\Box_In", "^print_\[.*\.txt$", "01.01.2016") ' --------------------------------------------------------------------------- Sub DelOldFile(inDir, Msk, sDt) dDt = DateValue(sDt) Set FSO = CreateObject("Scripting.FileSystemObject") Set Folds = FSO.GetFolder(inDir) Set Files = Folds.Files Set RegMaska = New RegExp RegMaska.Pattern = Msk RegMaska.IgnoreCase = True For Each jf In Files If RegMaska.Test(jf.Name) Then |
------- Последний раз редактировалось megaloman, 25-03-2018 в 12:40. Отправлено: 22:15, 23-03-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать megaloman, Добрый день. Спасибо за ответ. Сам скрипт проверил, но результат он не выдает, а файлы как были так и остались и процесс удаление видимо не срабатывает. Хотя может я сам что то не правильно делаю?
|
Отправлено: 11:00, 25-03-2018 | #3 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Цитата Vooodi4356:
В этом можно убедиться, проделав в командном окне команду dir Z:\Box_In\*.txt /O:D /T:С Возможно анализировать не дату создания, а дату последней модификации. Эти даты можно увидеть командой dir Z:\Box_In\*.txt /O:D /T:W В предыдущем посте я изменил строку. |
|
------- Отправлено: 12:40, 25-03-2018 | #4 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Vooodi4356,
Как вариант, ИМХО, проще в использовании CMD
Предполагаю, что дата в системе отображается как дд.мм.гггг
@Echo Off Call :DelOldFile "Z:\Soft_In\log_*.log" "15.03.2018" Call :DelOldFile "Z:\Soft_In\print_[*].txt" "01.01.2016" GoTo :Eof :DelOldFile Set "DateSave=%~2" Set /A DateSave=%DateSave:~6,4%%DateSave:~3,2%%DateSave:~0,2% Pushd "%~dp1" FOR /F "usebackq delims=" %%f IN (`2^>nul Dir %1 /b /A:-D /O:D /T:W`) DO Call :DelDate "%~dp1%%f" "%%~tf" %DateSave% Popd GoTo :Eof :DelDate Set "DateFile=%~2" Set /A DateFile=%DateFile:~6,4%%DateFile:~3,2%%DateFile:~0,2% If %DateFile% LSS %3 Del %1 GoTo :Eof |
|
------- Отправлено: 13:55, 25-03-2018 | #5 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Путь я сразу поменял на тот который требовался.
Проверил скрипт еще раз с измененной вами командой - If jf.DateLastModified < dDt Then Скрипт работает и при смене дат, удаление происходит нормально. Больше спасибо за оказанную помощь. Буду учить мат часть. С cmd тоже попробую |
Отправлено: 14:02, 25-03-2018 | #6 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Архивирование и удаление файлов в папке старше n дней | ryoryoryo | Скриптовые языки администрирования Windows | 14 | 09-04-2021 15:19 | |
CMD/BAT - Удаление файлов старше N дней в подпаках, кроме файлов в самой папке | Negtm | Скриптовые языки администрирования Windows | 4 | 03-02-2017 15:30 | |
CMD/BAT - [решено] Удаление старых файлов по дате и имени, если их больше n | NinjaScript | Скриптовые языки администрирования Windows | 2 | 04-03-2015 14:27 | |
Любой язык - Удаление файлов старше 5 дней кроме указанного по имени. | Joni | Скриптовые языки администрирования Windows | 6 | 11-07-2012 11:18 | |
VBS/WSH/JS - [решено] Удаление файлов по сети старше 7 дней, оставлять не менее 10 файлов | white155 | Скриптовые языки администрирования Windows | 6 | 04-01-2012 00:42 |
|