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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Удаление файлов старше N дней

Ответить
Настройки темы
Любой язык - [решено] Удаление файлов старше N дней

Пользователь


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

Профиль | Отправить 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
Благодарности: 861

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


Код: Выделить весь код
$date = (Get-Date).AddMonths(-3)
Get-ChildItem -Path D:\DA -Rec -Force | Where {!$_.PSIsContainer -and $_.CreationTime -lt $date} | Remove-Item -WhatIf
И в случае успеха убрать -WhatIf.

Отправлено: 16:50, 26-09-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


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

Профиль | Отправить 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



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Удаление файлов старше N дней

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - Удаление файлов старше 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




 
Переход