【发布时间】:2017-11-19 22:03:25
【问题描述】:
我正在生成一个“正常运行”的 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 循环的情况下提取单个os,相当于.js:
os=oss[n];
3) 如何返回 tim 相对于每个 os 的数组。
.vbs 代码循环通过可用的os 并获得它们各自的正常运行时间,但开发人员只计划了 1 个os,因此没有代码返回 tim 数组s。在研究了 .vbs 数组后,我发现了如何创建“set-length”数组,但这无关紧要!
【问题讨论】:
-
您可以循环遍历WMI查询结果的所有项目,并通过在JS中创建枚举器将它们添加到数组中。
标签: javascript arrays vbscript windows-7 windows-desktop-gadgets