Разобрать строку свойств в массиве для каждого цикла

Я пытаюсь получить информацию о батарее моего ноутбука с помощью VBScript.

Больше свойств. Я хочу разобрать arrayItems("Name","Availability","BatteryStatus","Chemistry") для каждого objItem.

Например:

For iii = 0 To UBound(arrayItems)
    WScript.Echo "Result of iii:" & objItem.arrayItems (iii)
Next

Я не хочу вводить вручную как "Availability: " & objItem.Availability, "BatteryStatus: " & objItem.BatteryStatus, ...

On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Battery",,48)
For Each objItem In colItems
    WScript.Echo "Name: " & objItem.Name
    WScript.Echo "Availability: " & objItem.Availability
    WScript.Echo "BatteryStatus: " & objItem.BatteryStatus
    WScript.Echo "Chemistry: " & objItem.Chemistry
    WScript.Echo "DesignVoltage: " & objItem.DesignVoltage
    WScript.Echo "EstimatedChargeRemaining: " & objItem.EstimatedChargeRemaining
    WScript.Echo "Status: " & objItem.Status
Next

Добро пожаловать в Stack Overflow. Какая именно проблема у вас возникла? Вы не очень четко объяснили, что вы действительно пытаетесь сделать, или каков фактический результат вашего кода, и почему это не то, что вам нужно. Прочтите Как спросить и посмотрите, сможете ли вы отредактировать вопрос, чтобы он был понятнее?

Dave 28.05.2019 11:15

@ Дэйв, я отредактировал свой вопрос. Пожалуйста, просмотрите и помогите мне.

Orion8 28.05.2019 11:54

Вы имеете в виду, что не хотите вызывать каждый атрибут объекта по отдельности, а выполняете распечатать все свойства в цикле? В этом случае вы должны использовать отражение для проверки доступных свойств объекта. Не уверен, как это сделать в vbscript (или возможно ли это вообще)

Geert Bellekens 28.05.2019 14:23

@Geert Bellekens - Мой разум как твое описание. :)

Orion8 28.05.2019 14:34
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
170
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

То, что вы хотите, можно сделать с помощью объекта properties_ набор свойств:

arrayItems = Array("Name", "Availability", "BatteryStatus", "Chemistry")
For Each objItem In colItems
    For Each name In arrayItems
        WScript.Echo name & ": " & objItem.properties_(name)
    Next
Next

Другие вопросы по теме