Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Вытащить значения из реестров нескольких компов (http://forum.oszone.net/showthread.php?t=298098)

mulrus 08-04-2015 13:35 2493192

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

Надыбал один скрипт:
Цитата:

@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 - [Значение]
.....и.т.д.

Elven 08-04-2015 15:56 2493240

вроде приблизительно как-то так
Код:

@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


mulrus 08-04-2015 16:11 2493249

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


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


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


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



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


Время: 08:55.

Время: 08:55.
© OSzone.net 2001-