В этой четвертой части по утилите WMIC мы рассмотрим способы управления форматом вывода данных, а именно – какие параметры используются для адаптации выводимой информации в заданный тип файла, построчный или табличный формат, преобразование специальных знаков. В большей части, информация актуальна для HTML или XML файлов.
Утилита WMIC предоставляет три основные параметры для управления данными:
- /OUTPUT – вывод во внешний файл
- /FORMAT – позволяет форматировать информацию
- /TRANSLATE – настройка вывода специальных символов.
Для начала, давайте рассмотрим, какие параметры и значения используются для вывода во внешний файл.
Формат вывода данных
Вывод в буфер Windows
Для того, что бы направить вывод данных в буфер обмена, используется параметр /OUTPUT со значением CLIPBOARD. Например:
/OUTPUT:CLIPBOARD
|
Стоит обратить внимание, что данная команда действует только в сеансе WMIC, то есть, команда
WMIC /OUTPUT:CLIPBOARD
|
ничего не даст
Вывод в XML-файл
Для сохранения данных во внешнем XML-файле используются два способа, глобальный параметр /RECORD или формат вывода данных RAWXML.
/RECORD – самый простой способ вывода данных. Вы просто прописываемее имя и путь к xml файлу и все. После этого произойдет вывод всех данных в заданный внешний файл. Например:
/RECORD:D:\work\info.xml
|
Фактически, произойдет процесс протоколирования, для отмены, нужно просто передать параметру пустое значение, например:
/RECORD:"" |
RAWXML – В данном случае происходит структурирование данных. Это актуально в комбинации с командами LIST или GET, перенаправить вывод во внешний файл помогает параметр /OUTPUT. Например:
/OUTPUT:D:\work\info.xml PROCESS LIST /FORMAT:RAWXML |
Вывод в HTML-файл
Используя форматы вывода данных HFORM и HTABLE можно направлять вывод во внешний HTML файл с помощью параметра /OUTPUT, который работает в комбинации с операторами LIST и GET.
HFORM – Как вы уже догадались, данный параметр позволяет задавать предоставлять информацию в виде HTML-таблицы. Например:
/OUTPUT: D:\work\info.html PROCESS LIST /FORMAT:HFORM |
Для сортировки данных в заданном столбце используется параметр sortby (в комбинации с параметром HTABLE), после которого идет имя столбца, данные в котором будут сортироваться. Например:
/OUTPUT: D:\work\info.html PROCESS LIST /FORMAT:HTABLE:"sortby=Name" |
Вывод в текстовый файл
Кроме формата вывода данных в HTML или XML файл, довольно часто удобнее записывать данные в простой текстовый документ. Для этого удобно использовать параметр /OUTPUT вместе с форматами вывода TEXTTABLE, TEXTTABLEWSYS и TEXTVALUELIST.
TEXTTABLE – тут собственно все понятно из названия, данные записываются в табличной форме. В этом случае. Каждая колонка будет содержать свойство класса WMI. Например:
/OUTPUT: D:\work\info.txt PROCESS LIST /FORMAT:TEXTTABLE |
TEXTTABLEWSYS – форматирование данных также происходит в табличном виде, но, для числовых значений не применяется дополнительное форматирование.
TEXTVALUELIST – для данного параметра вывод происходит в виде свойство=значение. Например:
/OUTPUT: D:\work\info.txt PROCESS LIST /FORMAT: TEXTVALUELIST |
Вывод в CSV-файл
Что бы вывести данные в CSV файл, который потом удобно обрабатывать в программе EXEL, используется параметр CSV. Например:
/OUTPUT: D:\work\info.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, то форматирование данных произойдет до преобразования