Формат вывода данных в утилите WMIC

Формат вывода данных в утилите WMIC Командная строка

В этой четвертой части по утилите WMIC мы рассмотрим способы управления форматом вывода данных, а именно – какие параметры используются для адаптации выводимой информации в заданный тип файла, построчный или табличный формат, преобразование специальных знаков. В большей части, информация актуальна для HTML или XML файлов.

Утилита WMIC предоставляет три основные параметры для управления данными:

  • /OUTPUT – вывод во внешний файл
  • /FORMAT – позволяет форматировать информацию
  • /TRANSLATE – настройка вывода специальных символов.

Для начала, давайте рассмотрим, какие параметры и значения используются для вывода во внешний файл.

Формат вывода данных

Вывод в буфер Windows

Для того, что бы направить вывод данных в буфер обмена, используется параметр /OUTPUT со значением CLIPBOARD. Например:

/OUTPUT:CLIPBOARD

Стоит обратить внимание, что данная команда действует только в сеансе WMIC, то есть, команда

WMIC /OUTPUT:CLIPBOARD

ничего не даст

Вывод в XML-файл

Для сохранения данных во внешнем XML-файле используются два способа, глобальный параметр /RECORD или формат вывода данных RAWXML.

/RECORD – самый простой способ вывода данных. Вы просто прописываемее имя и путь к xml файлу и все. После этого произойдет вывод всех данных в заданный внешний файл. Например:

/RECORD:D:workinfo.xml

Фактически, произойдет процесс протоколирования, для отмены, нужно просто передать параметру пустое значение, например:

/RECORD:""

RAWXML – В данном случае происходит структурирование данных. Это актуально в комбинации с командами LIST или GET, перенаправить вывод во внешний файл помогает параметр /OUTPUT. Например:

/OUTPUT:D:workinfo.xml PROCESS LIST /FORMAT:RAWXML

Вывод в HTML-файл

Используя форматы вывода данных HFORM и HTABLE можно направлять вывод во внешний HTML файл с помощью параметра /OUTPUT, который работает в комбинации с операторами LIST и GET.

HFORM – Как вы уже догадались, данный параметр позволяет задавать предоставлять информацию в виде HTML-таблицы. Например:

/OUTPUT: D:workinfo.html PROCESS LIST /FORMAT:HFORM

Для сортировки данных в заданном столбце используется параметр sortby (в комбинации с параметром HTABLE), после которого идет имя столбца, данные в котором будут сортироваться. Например:

/OUTPUT: D:workinfo.html PROCESS LIST /FORMAT:HTABLE:"sortby=Name"

Вывод в текстовый файл

Кроме формата вывода данных в HTML или XML файл, довольно часто удобнее записывать данные в простой текстовый документ. Для этого удобно использовать параметр /OUTPUT вместе с форматами вывода TEXTTABLE, TEXTTABLEWSYS и TEXTVALUELIST.

TEXTTABLE – тут собственно все понятно из названия, данные записываются в табличнеой форме. В этом случае. Каждая колонка будет содержать свойство класса WMI. Например:

/OUTPUT: D:workinfo.txt PROCESS LIST /FORMAT:TEXTTABLE

TEXTTABLEWSYS – форматирование данных также происходит в табличном виде, но, для числовых значений не применяется дополнительное форматирование.

TEXTVALUELIST – для данного параметра вывод происходит в виде свойство=значение. Например:

/OUTPUT: D:workinfo.txt PROCESS LIST /FORMAT: TEXTVALUELIST

ВыводвCSV-файл

Что бы вывести данные в CSV файл, который потом удобно обрабатывать в программе EXEL, используется параметр CSV. Например:

/OUTPUT: D:workinfo.csv PROCESS LIST /FORMAT: CSV

Параметр /FORMAT

Формат вывода данных можно легко настроить с помощью таблиц стилей XSL. Так, для параметра /FORMAT можно задать значение, которое позволит определить как стандартное, так и пользовательское форматирование – либо с помощью ключевого слова, либо XSL файла. Сами значения параметра /FORMAT соответствуют XSL файлам, которые находятся в папке %SystemRoot%System32Wbem. Само соответствие определяется в файле xsl-mapping.xml, расположенном в том же каталоге.

Если мы откроем файл xsl-mapping.xml, то увидим следующее содержимое:

  • <XSLMAPPINGS>
  • <XSLFORMAT KEYWORD="TABLE">texttable.xsl</XSLFORMAT>
  • <XSLFORMAT KEYWORD="VALUE">textvaluelist.xsl</XSLFORMAT>
  • <XSLFORMAT KEYWORD="LIST">textvaluelist.xsl</XSLFORMAT>
  • <XSLFORMAT KEYWORD="RAWXML">rawxml.xsl</XSLFORMAT>
  • <XSLFORMAT KEYWORD="HTABLE">htable.xsl</XSLFORMAT>
  • <XSLFORMAT KEYWORD="HFORM">hform.xsl</XSLFORMAT>
  • <XSLFORMAT KEYWORD="HXML">xml.xsl</XSLFORMAT>
  • <XSLFORMAT KEYWORD="HMOF">mof.xsl</XSLFORMAT>
  • <XSLFORMAT KEYWORD="CSV">csv.xsl</XSLFORMAT>
  • </XSLMAPPINGS>

Видим, что каждому значению соответствует имя xls файла, в котором прописаны стили. При желании вы можете добавить собственные значения и прописать путь к файлу со стилями.

Для начала, давайте рассмотрим, какие форматы вывода данных поддерживают значения для параметра /FORMAT:

CSV – в данном случае происходит вывод данных в одну строку, разделителем выступает запятая.

HFORM – информация о экземпляре класса будет выводится в виде совокупности HTML-таблиц в формате – один столбец будет содержать свойства, а второй – значения свойств.

HTABLE – формат вывода данных в виде одной HTML таблицы, тут каждая строчка соответствует одному экземпляру класса. В заголовки столбцов записываются имена свойств, а в сами столбцы – значения.

LIST – вывод свойства и его значения происходит в отдельной строке.

MOF – собственно, информация преобразуется в формат MOF.

RAWXML – данное значение подходит для вывода данных в XML файл.

TABLE – табличный формат вывода данных.

VALUE – аналогично значению LIST.

XML – также подходит для вывода данных в XML файл, но с дополнительной информацией.

Параметр / TRANSLATE

При использовании оператора GET в комбинации с любым параметром происходит преобразование символов  < и > в HTML обозначение — < и > Если возникает необходимость выводить именно символы < и >, то надо дополнительно использовать параметр /TRANSLATE со значением BASICXML. Например:

ENVIRONMENT GET /FORMAT:RAWXML /TRANSLATE:BASICXML

Стоит обратить внимание, что формат вывода данных и их вид будет зависеть от порядка следования параметров /TRANSLATE и /FORMAT.

  • Если /TRANSLATE идет раньше /FORMAT, то форматирование данных произойдет после преобразования
  • Если /FORMAT идет раньше /TRANSLATE, то форматирование данных произойдет до преобразования
Оцените статью
Технологии программирования и ведение блога
Добавить комментарий