簡體   English   中英

將UpTime JS代碼轉換為VBS

[英]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)如何返回相對於每個ostim數組。

.vbs代碼遍歷可用的os並獲得各自的正常運行時間,但是開發人員僅計划了1 os ,因此沒有代碼可返回tim的數組。 研究了.vbs數組后,我發現了如何創建“定長”數組,但這無關緊要!

  1. 機器名未定義,因此被視為零長度的字符串。 這意味着它被忽略了。 通常,您要查詢的是網絡上的計算機。 它是可選的,因此它的未聲明性不會引發錯誤。

  2. 使用COM縮寫(其中Items是默認屬性)

      os=oss(1) 

或全部

      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" 

注意:JScript與VBScript一樣使用COM。 該代碼將是相似的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM