0

我正在创建一个需要一些 VBScript 的 SQL Server 集成包。基本上,每隔几天就会有一个文件上传到我电脑上的文件夹中。该文件始终具有不同的名称,但始终包含相同的字符串。

例如,昨天的文件可能是“John J July 15.xlsx”,明天的文件可能是“John Jones Jul 17 2012.xlsx”。他们都包含“约翰”,他们总是会。我总是想将我的变量设置为等于包含“John”并且 DateCreated 属性等于今天的文件的文件名。

我的代码有问题吗?我无法让它工作。“Today.Date”是否也在返回时间?我只希望它返回一个日期。Name 属性是否也返回扩展名?

    Public Sub Main()
    Dim f, fl, fs As Object
    Dim filedate As Date = Microsoft.VisualBasic.Today.Date
    Dim firstFileName As String

    fs = CreateObject("Scripting.FileSystemObject")
    fl = fs.GetFolder("E:\myFolder")

    For Each f In fl.Files
        If f.DateCreated = filedate And f.Name = "John*" Then
            firstFileName = f.Name
            Dts.Variables("ExcelSource").Value = "E:\myFolder\" & firstFileName
        End If
    Next
    End Sub
4

1 回答 1

1

我不相信你上面的 IF 语句中的通配符会像你在这里想要的那样工作。它将文件名与文字“*”字符进行比较,并且不匹配。我可能会提出类似的建议:

*编辑: DateCreated 属性确实解析为第二个,因此您上面的比较也不起作用。这是一个非常粗略且未经测试的说明,说明您可以修改以测试正确日期(省略秒分辨率)的一种方法。*

...
If Year(fileDate)=Year(f.DateCreated) and _
   Month(fileDate)=Month(f.DateCreated) and _ 
   Day(fileDate)= Year(f.DateCreated) and  _
   Left(f.Name,4)="John" Then
...
于 2012-07-16T15:21:50.833 回答