Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date VBScript:需要根据文件名中创建的日期和字符串设置变量_Date_Vbscript_Wildcard - Fatal编程技术网

Date VBScript:需要根据文件名中创建的日期和字符串设置变量

Date VBScript:需要根据文件名中创建的日期和字符串设置变量,date,vbscript,wildcard,Date,Vbscript,Wildcard,我正在创建需要一些VBScript的SQL Server集成包。基本上,每隔几天就会有一个文件上传到我电脑上的文件夹中。此文件始终具有不同的名称,但始终包含相同的字符串 例如,昨天的文件可能是“John J July 15.xlsx”,明天的文件可能是“John Jones Jul 17 2012.xlsx”。它们都包含“约翰”,而且永远都会。我总是想将变量设置为包含“John”且DateCreated属性等于today的文件名 我的代码有问题吗?我不能让它工作。“今天.日期”也返回时间吗?我只

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

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

我的代码有问题吗?我不能让它工作。“今天.日期”也返回时间吗?我只想让它返回一个日期。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

我不相信上面IF语句中的通配符会按照您的意愿在这里工作。它会将文件名与文本“*”字符进行比较,但不匹配任何内容。我可以提出如下建议:

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


看看我刚刚发布的修订版,可能会有帮助。您可能还必须将日期比较修改为特定的月份和日期,因为如果文件创建日期属性解析为第二个,我不会立即想起。这将导致if的另一半也失败…将日期格式化为不带时间的日期:Dim myDate myDate=FormatDateTime(f.DateCreated,2)我使用了sorceri的建议,也使用了您关于使用LEFT的建议。现在可以用了!!谢谢大家!
...
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
...