2011-08-26 104 views
1

當日期(包括Now)始終從Windows系統日期/時間調用時,VBScript中出現問題。在VBScript中爲日期對象設置日期和時間而不更改系統日期/時間

如何在沒有在Windows中配置系統日期/時間的情況下爲VBScipt設置日期/時間。

例如

當VBS通話日期,日期將返回當前系統日期(如果今天的日期是1/1/2001)

Dim settingDate 
settingDate = Date 
//settingDate = 1/1/2001 

我想的東西鉤住了VBS代碼從我們得到的日期未經代碼更改Windows系統日期/時間

//Implement something to tell VBS that current date is 12/12/2000 
Dim settingDate 
settingDate = Date 
//settingDate = 12/12/2000 

感謝

+1

什麼問題是你想解決?系統日期應該是日期,如果你想要的東西不是日期,你可以說'Mydate =#12/12/2000#'並使用它。 – Fionnuala

+0

嗨Remou,我正在開發自動化測試工具來檢查許多設置日期的輸出值,我想將我的代碼(這是使用很多)中的所有日期更改爲其他日期。我不想更改代碼,因爲它屬於許多開發人員。他們使用日期獲取當前日期,我需要將其更改爲其他測試。 – i3gu

+0

Rob van der Woude http://www.robvanderwoude.com/datetimenonbatch.php#SetDateVBS? – Fionnuala

回答

5

僅有重新日期(),時間(),現在()。 POC腳本:

WScript.Echo "Date()", Date() 
    WScript.Echo "Time()", Time() 
    WScript.Echo "Now()" , Now() 
    ExecuteGlobal Join(Array(_ 
     "Function Date()" _ 
    , " Date = #1/1/2012#" _ 
    , "End Function" _ 
    , "Function Time()" _ 
    , " Time = TimeSerial(1, 2, 3)" _ 
    , "End Function" _ 
    , "Function Now()" _ 
    , " Now = CDate(4711.1147)" _ 
    , "End Function" _ 
), vbCrLf) 
    WScript.Echo "Date()", Date() 
    WScript.Echo "Time()", Time() 
    WScript.Echo "Now()" , Now() 

輸出:

Date() 26.08.2011 
Time() 14:19:41 
Now() 26.08.2011 14:19:41 
Date() 01.01.2012 
Time() 01:02:03 
Now() 23.11.1912 02:45:10 
+0

可怕,但確實如此。 +1 –

+0

+1我會盡力:) – i3gu

相關問題