1 (изменено: alexii, 2011-11-30 18:31:51)

Тема: VBScript: Как удалять файлы по имени и двухнедельной давности

Всем добрый день.

Есть вот такой скрипт:

Dim fso, WshShell
Dim oFolder, oFile
Const DPath = "E:\Backup\"

Set fso = createobject("Scripting.FileSystemObject")
Set WshShell = CreateObject("WScript.Shell")
Set oFolder = fso.GetFolder(DPath)

Set oFile = oFolder.Files

If (Not fso.FolderExists(DPath)) Then
WSH.Echo("Отсутствует директория или не назначен диск")
Else
For Each i In oFile 
file =  oFolder.Path & i.Name

If (i.DateLastModified < (Date - 14)) Then
fso.DeleteFile file, true
End If
next
End if

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

2 (изменено: dab00, 2011-11-30 17:47:08)

Re: VBScript: Как удалять файлы по имени и двухнедельной давности

OlderThanDate = DateAdd("d", -14, Date) ' дата, старше которой необходимо удалять
If i.DateLastModified < OlderThanDate Then ...
По именам - можно парсить имена файлов например функцией InStr
По расширениям - тоже можно парсить имя файла или получать расширения файлов с помощью, например, fso.GetExtensionName

3

Re: VBScript: Как удалять файлы по имени и двухнедельной давности

как удалять старше даты я понял, и привел скрипт. Вопрос в том как объединить удаление файла с определенным именем и расширением которое старше 2 недель.

4 (изменено: dab00, 2011-11-30 17:55:12)

Re: VBScript: Как удалять файлы по имени и двухнедельной давности

If InStr(i.Name,"искомая_строка") Then
If fso.GetExtensionName(i.Path) = "искомое_расширение" Then

5

Re: VBScript: Как удалять файлы по имени и двухнедельной давности

Не заметил никакого моветона, чесслово
Стопудово скрипт будет запускаться через планировщик, поэтому не вижу особой разницы:
менять аргументы запуска или менять константу/переменную в коде, по мне так проще второе, но это, как говорится, на вкус и цвет

6

Re: VBScript: Как удалять файлы по имени и двухнедельной давности

dab00 пишет:

не вижу особой разницы:
менять аргументы запуска или менять константу/переменную в коде, по мне так проще второе, но это, как говорится, на вкус и цвет

Большая разница.
Во-первых, замена константы/переменной в коде - это модификация приложения. Недопустимо менять какую-либо часть программы, находящейся в промышленной эксплуатации. Во-вторых, запуск с параметром - это гибкость в эксплуатации..

( 2 * b ) || ! ( 2 * b )

7

Re: VBScript: Как удалять файлы по имени и двухнедельной давности

Не будем спорить, ибо давно определено, что… В общем, здесь правы greg zakharov и Rumata.