2015-02-12 72 views

回答

0

一般情况下,使用日期时,你应该使用日期变量和函数(CDATE,DateSerial,则DateDiff,...)。但是,在这种特殊情况下,一粘性的策略可能会行得通:

(1)预建一个串上中旬当前日期

>> dToday = Date() 
>> sToday = Right("0" & Day(dToday), 2) & MonthName(Month(dToday), True) & Year(dToday) 
>> WScript.Echo sToday 
>> 
12Feb2015 

(2)使用InStr函数()或=(),以确定是否不是移动文件。

如果失败了 - 因为MonthNames中或在规范“较老”的定义的变化 - 你需要削减和重新格式文件名的日期部分适合CDATE():

>> WScript.Echo CDate("09Feb2015") 
>> 
Error Number:  13 
Error Description: Type mismatch 
>> WScript.Echo CDate("09 Feb 2015") 
>> 
09.02.2015 <-- German Locale 

或DateSerial():

>> s = Right("TEST_COPT_PART_TAX_09Feb2015_080529", 16) 
>> d = DateSerial(CInt(Mid(s, 6, 4)), 2, CInt(Mid(s, 1, 2))) 
>> WScript.Echo d 
>> 
09.02.2015 <-- German Locale 

(映射月份名称为适于DateSerial()编号被留给读者作为练习)

+0

我用下面的行删除文件中的扩展源文件夹以便用上述文件名取得任何类型的扩展名 fname = Left(ObjFile.Name,(InStrRev(objFile.Name,“。”,-1,vbTextCompare) - 1)) 下面的代码用于过滤“TEST_COPT_PART_TAX_”,以获得单独的日期部分 DateStampFilter =右(fname,18) 但我不能从文件名中取出日期。 之后,我需要根据sys时间格式化日期进行比较。 我在做上面的代码错了。显示一些光。 您的帮助非常感谢..! – 2015-02-17 11:02:06

+0

@Carthiksharma - 没有灯光显示,因为从文件名中删除部分与我向您展示的两种方法无关,以确定给定名称是否属于今天。 – 2015-02-17 11:14:25

相关问题