Помогите перевести скрипт из vbs в js

Тема в разделе "WASM.WIN32", создана пользователем Nouzui, 7 янв 2007.

  1. Nouzui

    Nouzui New Member

    Публикаций:
    0
    Регистрация:
    17 ноя 2006
    Сообщения:
    856
    не знаю, в тему это или нет, но про win точно
    есть скрипт, отображающий данные о производителе оси:

    Код (Text):
    1. On Error Resume Next
    2. Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
    3. If Err.Number <> 0 Then
    4.     WScript.Echo Err.Number & ": " & Err.Description
    5.     WScript.Quit
    6. End If
    7. For Each objOS In objService.ExecQuery("SELECT * FROM Win32_OperatingSystem")
    8.     Exit For
    9. Next
    10.  
    11. WScript.Echo objOS.Manufacturer
    вроде работает


    а вот мои попытки перевести это на JS:
    Код (Text):
    1. var WinInfo= null;
    2.  
    3. try
    4. {
    5.     var WinInfos= GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\CIMV2").ExecQuery("SELECT * FROM Win32_OperatingSystem");
    6.     for(WinInfo in WinInfos)
    7.         break;
    8. }
    9. catch(err)
    10. {
    11.     WScript.Echo("Error: " + (err.number & 0xFFFF) + " - " + err.description);
    12.     WScript.Quit();
    13. }
    14. if(WinInfo==null)
    15. {
    16.     WScript.Echo("The empty set is retrned");
    17.     WScript.Quit();
    18. }
    19.  
    20. WScript.Echo(WinInfo.Manufacturer);
    как вариант:
    Код (Text):
    1. var WinInfo= null;
    2.  
    3. try
    4. {
    5.     var WinInfo= GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\CIMV2").ExecQuery("SELECT * FROM Win32_OperatingSystem");
    6. }
    7. catch(err)
    8. {
    9.     WScript.Echo("Error: " + (err.number & 0xFFFF) + " - " + err.description);
    10.     WScript.Quit();
    11. }
    12. if(WinInfo==null?true:WinInfo.Count==0)
    13. {
    14.     WScript.Echo("The empty set is retrned");
    15.     WScript.Quit();
    16. }
    17.  
    18. WScript.Echo(WinInfo.Item(0).Manufacturer);
    и обе нерабочие

    кто-нить знает, как правильно это написать?
     
  2. bolkin

    bolkin New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    34
    Адрес:
    Israel
    Код (Text):
    1. var WinInfo= null;
    2.  
    3. try
    4. {
    5.     var WinSvc= GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\CIMV2")
    6.     var WinInfos= WinSvc.ExecQuery("SELECT * FROM Win32_OperatingSystem");
    7.  
    8.     var _enum = new Enumerator(WinInfos);
    9.     for (WinInfo=_enum.item();!_enum.atEnd(); _enum.moveNext(WinInfos) )
    10.         break;
    11.        
    12. }
    13. catch(err)
    14. {
    15.     WScript.Echo("Error: " + (err.number & 0xFFFF) + " - " + err.description);
    16.     WScript.Quit();
    17. }
    18. if(WinInfo==null)
    19. {
    20.     WScript.Echo("The empty set is retrned");
    21.     WScript.Quit();
    22. }
    23.  
    24. WScript.Echo(WinInfo.Manufacturer);
     
  3. Nouzui

    Nouzui New Member

    Публикаций:
    0
    Регистрация:
    17 ноя 2006
    Сообщения:
    856
    thanks
    не пойму только, почему нельзя получить доступ через item() ?
     
  4. bolkin

    bolkin New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    34
    Адрес:
    Israel
    Я это где-то в другом месте видел, но сейчас нашел только это:
    http://blogs.msdn.com/ericlippert/archive/2003/09/22/53063.aspx