VBScript运行时错误:需要对象(Windows 2003)

VBScript运行时错误:需要对象(Windows 2003),vbscript,Vbscript,尝试从函数返回字符串会导致所需对象错误。 在Windows 2003上运行此代码。注意:在w2k3上,Win32\u操作系统 不支持=@单例,这就是为什么我们对每个…/退出功能 Function GetLocalTime() Dim wmi, itm Set wmi = GetObject("winmgmts:root\cimv2") For Each itm in wmi.ExecQuery("SELECT * FROM Win32_OperatingSystem")

尝试从函数返回字符串会导致所需对象错误。 在Windows 2003上运行此代码。注意:在w2k3上,
Win32\u操作系统
不支持
=@
单例,这就是为什么我们对每个…/退出功能

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

我明白了。报告的错误消息发生在
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
函数GetLocalTime() Dim wmi,itm 设置wmi=GetObject(“winmgmts:root\cimv2”) 对于wmi.ExecQuery中的每个itm(“从Win32\U OperatingSystem中选择*) GetLocalTime=itm.LocalDateTime 退出功能 下一个 端函数
Dim started:started=GetLocalTime'解决了这个问题。报告的错误消息发生在
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
函数GetLocalTime() Dim wmi,itm 设置wmi=GetObject(“winmgmts:root\cimv2”) 对于wmi.ExecQuery中的每个itm(“从Win32\U OperatingSystem中选择*) GetLocalTime=itm.LocalDateTime 退出功能 下一个 端函数 Dim started:started=GetLocalTime'