|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Удаление файлов старше N дней |
|
Любой язык - [решено] Удаление файлов старше N дней
|
Пользователь Сообщения: 55 |
Профиль | Отправить PM | Цитировать Тема, наверняка, избитая, но поиск не отразил нужной мне инфы, посему создал тему.
Необходим отсчет дней по штампу создания, а не последнего изменения, что везде предлагается. Как это сделать? нашел вот это (ну собсно первая сссылка в поисковике): http://pokatashkin.com/archives/40 Годны, быстрый, короткий скрипт, но отсчет он ведет по дате последнего изменения. Не владею VBS и банальная замена file.datelastmodified на file.datecreated оказалась безрезультатной. При использовании forfiles.exe отсчет так же идет от штампа изменения. Так же предложили мне такой вариант на PS: [code]# удаляем файлы старше трех месяцев $date = (Get-Date).AddMonths(-3) Get-ChildItem -Path D:\DA | where {!$_.PSIsContainer} | foreach { if ($_.LastWriteTime -lt $date) { # в тестовых целях указываем -whatif # когда убедимся что все корректно работает то убираем его #Remove-Item $_ } }[code] И что-то он не захотел работать, ошибок не выдает так же. |
|
Отправлено: 16:40, 26-09-2012 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать |
Отправлено: 16:50, 26-09-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать Вот на VBS без рекурсии
Option Explicit Dim fso Dim objFolder Dim strFolder Dim objFiles Dim objFile Dim datDate On Error Resume Next 'initialize parameters strFolder = "D:\Folder" datDate = Now - 7 'one week ago 'set object variables Set fso = CreateObject("Scripting.FileSystemObject") Set objFolder = fso.GetFolder(strFolder) Set objFiles = objFolder.Files 'loop through members of collection For Each objFile in objFiles 'do something with file Call DeleteOldFile(objFile, datDate) Next WScript.Quit Err.Number Function DeleteOldFile(objFile, datDate) 'function deletes file which was created date specified and earlier If objFile.DateCreated <= datDate Then 'WScript.Echo objFile.Name & " " & objFile.DateCreated objFile.Delete End If End Function |
Отправлено: 11:42, 27-09-2012 | #3 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Любой язык - Удаление файлов старше 5 дней кроме указанного по имени. | Joni | Скриптовые языки администрирования Windows | 6 | 11-07-2012 11:18 | |
VBS/WSH/JS - [решено] Удаление файлов по сети старше 7 дней, оставлять не менее 10 файлов | white155 | Скриптовые языки администрирования Windows | 6 | 04-01-2012 00:42 | |
[решено] Автоочистка файлов, старше 5 дней. | Universal_gr | Программное обеспечение Linux и FreeBSD | 1 | 01-10-2010 01:12 | |
Прочее - удаление файлов старше 10 дней | admin666 | Общий по Linux | 1 | 23-07-2009 19:09 |
|