Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Удаление файлов XLS


Автор: aezh 26.12.2005, 13:38
Помогите, пожалуйста, новичку с помощью скрипта VBS в назначенных заданиях Win2K Pro удалить файлы XLS в некоторой папке с датой создания в предыдущих текущему месяцах.
Пробую так:
Код

'Удаление файлов XLS если они старше 30 дней 
Dim FSO, WSH 
Dim TheFolder, TheFiles, AFile 
Set WSH = CreateObject("WScript.Shell") 
Set FSO = CreateObject("Scripting.FileSystemObject") 
Set TheFolder = FSO.GetFolder("c:\temp\report\") 'Каталог, откуда удалять 
Set TheFiles = TheFolder.Files 
For Each AFile In TheFiles 
    If UCase(FSO.GetExtensionName(AFile.Path)) = "XLS" and _ 
        FormatDateTime(AFile.DateLastModified, 2) < FormatDateTime(Date - 30, 2) Then 
        AFile.Delete 
    End If 
Next

Нет, к сожалению, непонятная мне ошибка происходит smile Удаляются ВСЕ файлы XLS кроме модифицированных 30-го ноября 2005 года.
Для них выражение
[code=vb]FormatDateTime(AFile.DateLastModified, 2) < FormatDateTime(Date - 30, 2)[/сode]
возвращает Ложь.

Почему, подскажите, пожалуйста.

Автор: boevik 26.12.2005, 14:11
Цитата
FormatDateTime(AFile.DateLastModified, 2) < FormatDateTime(Date - 30, 2)

При таком раскладе, возможно, происходит сравнение стрингов.

Лучше использовать DateDiff:
Код

DateDiff("d", AFile.DateLastModified, Date) > 30 Then
...

Автор: aezh 26.12.2005, 15:51
Спасибо, boevik smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)