VB 用于将日期字符串存储在文件名中并与当前日期进行比较的脚本

VB script to store a date string in a filename and compare with current date

我有一个包含日期戳的文件名。我想将文件名中的日期与当前日期进行比较,如果它较早,则执行操作(将文件移动到 'backup' 文件夹)。

以下是文件格式的一些示例:

TEST_COPT_PART_TAX_09Feb2015_080529
TEST_COPT_PART_YTD_09Feb2015_080529

通常,在处理日期时应使用日期变量和函数(CDate、DateSerial、DateDiff 等)。但在这种特殊情况下,严格的方法可能会奏效:

(1) 为当前日期预构建一个字符串

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

(2) 使用 InStr() 或 = on Mid() 判断是否移动文件。

如果失败 - 由于 MonthNames 或规范中 "older" 定义的更改 - 您需要剪切并重新格式化适合 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() 的数字留作练习)