2015-01-21 7 views
1

Я пытаюсь создать скрипт, который обнаружит, что папка не была изменена в в последний день и создать текстовый файл в месте. Однако, если он был изменен в последний день, я хочу, чтобы он вышел из сценария.нужна помощь при создании скрипта, чтобы узнать, была ли изменена папка в последний день, и если не создать файл txt в местоположении

На данный момент я только смог создать один (из-за моих основных знаний о VBscripting), который обнаруживает, существует ли папка и создает ли сценарий.

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

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

Это сценарий до сих пор:

Set objFSO = CreateObject("Scripting.FileSystemObject") 
    If objFSO.FolderExists("c:\test") Then 
    wsscript.quit 
    Else 
    dim filesys, filetxt, getname, path 
    Set filesys = CreateObject("Scripting.FileSystemObject") 
    Set filetxt = filesys.CreateTextFile("c:\test\test.txt", True) 
    path = filesys.GetAbsolutePathName("c:\test\test.txt") 
    getname = filesys.GetFileName(path) 
    filetxt.WriteLine("file doesnt exist.") 
    filetxt.Close 
    End If 

Я знаю, что нужно изменить линию .folderExists к чему-то вроде

if file.DateLastModified > dateadd("h", -24, Now) then 

Я хотел бы параметр день, а не час; Я знаю, что это означает превратить h в d, но я не уверен в этом.

Решено г-ном Бондом! замечательный человек. однако у меня теперь есть другой вопрос, любая идея, как добавить команду для отправки электронной почты Outlook в это? как вариант else.

ответ

0

Используйте объект DateLastModified объекта Folder.

If objFSO.GetFolder("c:\test").DateLastModified >= Date - 1 Then 
    ' Folder modified within last day 
Else 
    ' Folder modified more than a day ago 
End 

Там нет необходимости использовать DateAdd(), чтобы добавить/вычесть дни. Вы можете просто использовать целочисленную арифметику.

Обратите внимание, что это даст время из ноль/полуночи. Поэтому он действительно проверяет, была ли папка изменена с самого начала дня вчера, а не в последние 24 часа. Это может быть или не быть тем, что вы хотите.

+0

спасибо что для этого! это помогло мне решительно! – djl123

+0

Вы знаете, как добавить раздел для отправки электронной почты после опции «else»? – djl123

+0

Поиск на этом сайте для '[vbscript] CDO'. Существует множество отличных примеров использования библиотеки _Collaboration Data Objects_ для отправки электронной почты из VBScript. Удачи. – Bond