【问题标题】:VBScript runtime error: Object required (Windows 2003)VBScript 运行时错误:需要对象 (Windows 2003)
【发布时间】:2016-09-22 04:38:00
【问题描述】:

尝试从函数返回字符串会导致 Object required 错误。 在 Windows 2003 上运行此代码。注意:在 w2k3 上,Win32_OperatingSystem 可以 不支持=@单例,这就是我们使用For Each ... / Exit Function的原因

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

【问题讨论】:

    标签: vbscript


    【解决方案1】:

    想通了。错误消息报告为发生在 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多