Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Вытащить значения из реестров нескольких компов

Ответить
Настройки темы
CMD/BAT - Вытащить значения из реестров нескольких компов

Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


Есть задача. Надо с компов в сети собрать инфу по установленной версии одной проги на каждом.

Надыбал один скрипт:
Цитата:
@echo off
setlocal enableextensions enabledelayedexpansion

>"D:\1.txt" (
>nul chcp 1251

for /f "usebackq delims=" %%i in (
`reg.exe query "\\192.168.56.1\HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\M oyaProga"`
) do for /f "usebackq tokens=3*" %%j in (
`reg.exe query "%%~i" /v "DisplayVersion" 2^>nul ^| find.exe /i "DisplayVersion"`
) do echo %%~j %%k|findstr.exe /i /v /r /c:"^Microsoft Visual C++ .* False$"

>nul chcp 866
)

endlocal
exit /b 0
В результате появляется файлик 1.txt c нужным мне значением, НО

1. Как сделать так, чтобы просто в какую нибудь переменную вбить через проблем IP-адреса компов по которым будет прогоняться скрипт?
2. Ну и получить результат в файл списком видка
192.168.56.1 - [Значение]
192.168.56.2 - [Значение]
.....и.т.д.

Отправлено: 13:35, 08-04-2015

 

Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


вроде приблизительно как-то так
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

>"D:\1.txt" (
>nul chcp 1251

for /f "delims=," %%c in ("192.168.56.1,192.168.56.2") do (
for /f "usebackq delims=" %%i in (
`reg.exe query "\\%%с\HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\M oyaProga"`
) do for /f "usebackq tokens=3*" %%j in (
`reg.exe query "%%~i" /v "DisplayVersion" 2^>nul ^| find.exe /i "DisplayVersion"`
) do echo %%c %%~j %%k|findstr.exe /i /v /r /c:"^Microsoft Visual C++ .* False$"
)
>nul chcp 866
)

endlocal
exit /b 0

Отправлено: 15:56, 08-04-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


Запустил, но сначала ругается вот так


Потом тупо решил сам reg.exe скопировать рядом с батником, теперь ругается так.


Ну и на худой конец System32, тоже как-то не айс


Если включить echo, то там непонятно что подставляется в адрес вместо IP-шника



Причина в том, что где-то русская "%%с" была. Но почему-то строка только одна в файл выводится
192.168.56.1 4.1.1.0

Последний раз редактировалось mulrus, 08-04-2015 в 19:49.


Отправлено: 16:11, 08-04-2015 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Вытащить значения из реестров нескольких компов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2008 R2 - [решено] Падение нескольких компов в сети SentAmalgama Windows Server 2008/2008 R2 18 13-11-2012 11:47
DNS/DHCP - [решено] Что нужно для работы нескольких компов? vladim33 Сетевые технологии 9 26-07-2011 18:45
Вытащить видео из AVI Karantin Видео и аудио: обработка и кодирование 10 05-05-2009 18:55
Прочее - Как раздать один телефонный номер для звонков с нескольких компов? enikei Сетевые технологии 3 28-10-2008 17:34
Существует ли утилита, позволяющая объединять буферы обмена нескольких компов в LAN? Oleg_SK Программное обеспечение Windows 3 22-04-2007 20:41




 
Переход