我正在创建一个需要一些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
答案 0 :(得分:1)
我不相信上面的IF语句中的通配符可以按照您的意图运行。它会将文件名与 literal “*”字符进行比较,并且不匹配。我可能会建议:
* 编辑 :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
...