[英]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.