|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Батник для парсинга и вывода на экран |
|
CMD/BAT - Батник для парсинга и вывода на экран
|
Новый участник Сообщения: 8 |
Аудирую ПК с разными версиями Windows, начиная от 2000, домена нет, VBScript запрещен, поэтому выбор пал на парсинга вывода AIDA64 Business, XML я не осилил, поэтому решено было парсить INI-файл.
Скрипт должен брать строки (tokens=1, %%i) из params.dat, находить аналогичную в Report.ini (тоже tokens=1, %%j), в случаев совпадения выдать из файла Reports.ini всю строку в консоль. Архив со своими трудами прилагаю. |
|
Отправлено: 14:51, 25-11-2014 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать |
Отправлено: 20:38, 25-11-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 8
|
Профиль | Сайт | Отправить PM | Цитировать Georgio, спасибо. На самом деле первый всё-таки нравится больше, шире возможности кастомизации вывода.
|
Отправлено: 13:19, 26-11-2014 | #3 |
Новый участник Сообщения: 8
|
Профиль | Сайт | Отправить PM | Цитировать Скрипт мой ширится, но напрямую break или next %%i не нашел в for, подскажите пожалуйста, каким методом лучше реализовать?
@echo off echo NETBIOS Host Name=%computername% .\bin\AIDA64Business\aida64.exe /R .\reports\$HOSTNAME_1.ini /INI /CUSTOM .\xx.rpf .\bin\iconv\bin\iconv.exe -f CP1251 -t UTF-8 .\reports\%computername%_1.ini > .\reports\report_out.ini chcp 65001 for /f "usebackq delims==" %%i in ("params.dat") do ( for /f "usebackq tokens=1* delims==" %%j in (".\reports\report_out.ini") do ( if /i "%%i"=="%%j" ( echo %%j=%%k ) ) ) pause>nul |
Отправлено: 13:57, 09-12-2014 | #4 |
Новый участник Сообщения: 8
|
Профиль | Сайт | Отправить PM | Цитировать Решил проблемы собственным мозгом, выглядит так:
@echo off Setlocal EnableDelayedExpansion echo NETBIOS Host Name=%computername% rem .\bin\AIDA64Business\aida64.exe /R .\reports\$HOSTNAME_1.ini /INI /CUSTOM .\xx.rpf .\bin\iconv\bin\iconv.exe -f CP1251 -t UTF-8 .\reports\%computername%_1.ini > .\reports\report_out.ini chcp 65001 for /f "usebackq delims==" %%i in ("params.dat") do ( set bool=false for /f "usebackq tokens=1* delims==" %%j in (".\reports\report_out.ini") do ( if /i "!bool!" == "false" ( if /i "%%i"=="%%j" ( echo %%j=%%k set bool=true ) ) ) ) pause>nul |
|
Отправлено: 14:48, 09-12-2014 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Как сделать два потока вывода в файл и на экран | zamut | Скриптовые языки администрирования Windows | 2 | 27-12-2011 09:10 | |
Карточка для вывода изображений на несколько мониторов | Duplex | Видеокарты | 0 | 13-07-2008 21:37 | |
Java - Regexp java или иной библиотеки для парсинга HTML | Flick | Программирование и базы данных | 5 | 25-03-2008 15:23 | |
Недостаточно системных ресуров для вывода на экран??? | Eagle12 | Microsoft Windows 95/98/Me (архив) | 2 | 17-05-2004 11:44 |
|