2016-09-21 85 views
0

試圖從函數結果返回字符串結果所需對象錯誤。 這段代碼運行在Windows 2003。注意:在W2K3,Win32_OperatingSystem不 不支持[email protected]單這就是爲什麼我們使用For Each .../Exit FunctionVBScript運行時錯誤:需要的對象(Windows 2003)

Function GetLocalTime() 
    Dim wmi, itm 
    Set wmi = GetObject("winmgmts:root\cimv2") 
    For Each itm in wmi.ExecQuery("SELECT * FROM Win32_OperatingSystem") 
     ' NEXT LINE THROWS 'Object required' error 
     GetLocalTime = itm.LocalDateTime 
     Exit Function 
    Next 
End Function 

Dim started : Set started = GetLocalTime 
WScript.Echo "started " & started 

回答

2

想通了。報告的錯誤消息發生在GetLocalTime()函數的主體內,但錯誤實際上來自調用。需要刪除Set。這裏是更正的代碼:

Function GetLocalTime() 
    Dim wmi, itm 
    Set wmi = GetObject("winmgmts:root\cimv2") 
    For Each itm in wmi.ExecQuery("SELECT * FROM Win32_OperatingSystem") 
     GetLocalTime = itm.LocalDateTime 
     Exit Function 
    Next 
End Function 

Dim started : started = GetLocalTime ' <-- CHANGED LINE 
WScript.Echo "started " & started 
相關問題