[英]Convert UpTime JS code to VBS
我正在生成“正常运行时间” 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)如何在不使用For Each
循环的情况下提取与js等价的单个os
:
os=oss[n];
3)如何返回相对于每个os
的tim
数组。
.vbs代码遍历可用的os
并获得各自的正常运行时间,但是开发人员仅计划了1 os
,因此没有代码可返回tim
的数组。 研究了.vbs数组后,我发现了如何创建“定长”数组,但这无关紧要!
机器名未定义,因此被视为零长度的字符串。 这意味着它被忽略了。 通常,您要查询的是网络上的计算机。 它是可选的,因此它的未声明性不会引发错误。
使用COM缩写(其中Items
是默认属性)
os=oss(1)
或全部
os=oss.items(1)
字典更容易(来自“帮助”)。
Set d = CreateObject("Scripting.Dictionary") d.Add "a", "Athens" ' Add some keys and items. d.Add "b", "Belgrade" d.Add "c", "Cairo"
注意:JScript与VBScript一样使用COM。 该代码将是相似的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.