2015-02-12 65 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

相關問題