将UpTime JS代码转换为VBS

时间:2017-11-19 22:03:26

标签: javascript arrays vbscript windows-7 windows-desktop-gadgets

我正在生成一个“Up-Time”Win7小工具并尝试重现类似小工具中的.vbs代码。

我是.js编码员。

相关JS:

vbStr=GetUpTime();

相关VBS:

Function GetUpTime
    Set loc=CreateObject("WbemScripting.SWbemLocator")
    Set svc=loc.ConnectServer(MachineName, "root\cimv2")
    Set oss=svc.ExecQuery("SELECT * FROM Win32_OperatingSystem")
    For Each os in oss
        tim=os.LastBootUpTime
    Next
    GetUpTime=tim
End Function

基本上这个.vbs可以解决问题,因为目前只有1 os在运行。我想通过学习来扩展这个:

1)MachineName的相关性是什么?

如果我返回MachineName而不是tim,我会得到undefined值。

2)如何在没有os循环的情况下提取单个For Each,等同于.js:

os=oss[n];

3)如何相对于每个tim返回os的数组。

.vbs代码遍历可用的os并获得各自的正常运行时间,但开发人员只计划1 os,因此没有代码返回数组tim的。在研究了.vbs数组之后,我发现了如何创建一个'set-length'数组,但这不相关!

1 个答案:

答案 0 :(得分:0)

  1. 计算机名称未定义,因此被视为零长度字符串。这意味着它被忽略了。通常,它是您要查询的网络上的计算机。它是可选的,因此它的未声明不会引发错误。

  2. 使用COM缩写(其中Items是默认属性)

      os=oss(1) 
    
  3. 或完整

          os=oss.items(1)
    
    1. 字典更容易(来自帮助)。

       Set d = CreateObject("Scripting.Dictionary")
       d.Add "a", "Athens"   ' Add some keys and items.
       d.Add "b", "Belgrade"
       d.Add "c", "Cairo"
      
    2. 注意:JScript使用COM就像VBScript一样。代码类似。