我有一个带有日期戳的文件名。我想将文件名中的日期与当前日期进行比较,并执行操作(如果文件较旧,则将文件移至“备份”文件夹)。
以下是文件格式的一些示例:
TEST_COPT_PART_TAX_09Feb2015_080529
TEST_COPT_PART_YTD_09Feb2015_080529
答案 0 :(得分:1)
通常,在处理日期时应使用日期变量和函数(CDate,DateSerial,DateDiff,...)。但在这种特殊情况下,一种粗糙的方法可能会起作用:
(1)预先建立当前日期的字符串
>> dToday = Date()
>> sToday = Right("0" & Day(dToday), 2) & MonthName(Month(dToday), True) & Year(dToday)
>> WScript.Echo sToday
>>
12Feb2015
(2)在Mid()上使用InStr()或=来确定是否不来移动文件。
如果失败 - 因为MonthNames或更改" old"在规范中 - 你需要剪切和重新格式化适合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()的数字留作练习)