Может ли VBScript определить последний измененный (или добавленный) файл в определенной папке? - PullRequest
2 голосов
/ 16 марта 2010

У меня есть сценарий (или, точнее, будет сценарий), который проверяет папку и копирует файл из этой папки в другое место (будет запускаться один раз в день). Однако имя файла, из которого я хотел бы скопировать, изменяется в зависимости от даты.

По сути, вместо того, чтобы устанавливать для "strFilePath" значение "C: \ somePath \ somePath2 \ myFile.txt", я хотел бы просто взять самые последние измененные (или добавленные - это имеет значение для сценария? ?) в папке "somePath2" и скопируйте его в место назначения.

Бонус (но не полностью необходимый) будет заключаться в том, чтобы проверить в скрипте, был ли файл изменен / добавлен за последние 24 часа, и скопировать его только в этом случае.

Спасибо за вашу помощь!

Ответы [ 2 ]

5 голосов
/ 16 марта 2010

Попробуйте:

option explicit

dim fileSystem, folder, file
dim path 

path = "C:\temp"

Set fileSystem = CreateObject("Scripting.FileSystemObject")
Set folder = fileSystem.GetFolder(path)

for each file in folder.Files    
    if file.DateLastModified > dateadd("h", -24, Now) then
        'whatever you want to do to process'
        WScript.Echo file.Name & " last modified at " & file.DateLastModified
    end if
next
3 голосов
/ 16 марта 2010

Как насчет:

Dim f, fl, fs 
Dim filedate, filename

Set fs = CreateObject("Scripting.FileSystemObject")
Set fl = fs.GetFolder("C:\Docs")

For Each f In fl.Files
    If IsNull(filedate) Or f.DateCreated > filedate Then
        filedate = f.DateCreated
        filename = f.Name
    End If
Next

''Most recent file and date are contained in filename, filedate
...