Компьютерный форум 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=263977)

SANIOK_AV 08-07-2013 17:13 2181419

Проверка значения переменной реестра во всех пользовательских профилях
 
Доброго времени суток!
Хочу проверить значение переменной реестра HKEY_CURRENT_USER\Software\Razdel1\Peremennaya1 во всех профилях
И если в некотором профиле значение этой переменной не равно "1", то к значению переменной "RESULT" нужно добавить имя пользователя этого профиля.
Пытаюсь сделать так:
Код:

set result=ok

for /f "usebackq tokens=3,3* delims==        " %%i in (`reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /v ProfilesDirectory`) do set profiles=%%i
for /f "usebackq delims==" %%i in (`echo %profiles%`) do set profiles=%%i
For /F "usebackq tokens=* delims==" %%i in (`DIR /B /AD-S "%profiles%" ^| FINDSTR /V /B /I /C:"All Users"`) DO (
  reg load HKEY_USERS\111 "%profiles%\%%i\NTUSER.DAT"
Set env=0
For /F "Tokens=2*" %%j In ('Reg Query "HKEY_USERS\111\Software\Razdel1" /V Peremennaya1') Do (
  For /F "Tokens=1 delims=" %%l In ('echo %%k') do set env=%%l
)
echo %env%
if /i "-%env%" neq "-1" (
  set result=%result%_%%i
  )
  reg unload HKEY_USERS\111
)

echo %result%
pause

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

Iska 08-07-2013 19:10 2181486

SANIOK_AV, как обычно: «setlocal enableextensions enabledelayedexpansion» в начале и «echo !env!», «if /i "-!env!" neq "-1"», «set result=!result!_%%i» внутри скобок (может, ещё где недоглядел аналогичное использование).

SANIOK_AV 09-07-2013 15:20 2181930

Iska, Cпасибо огромное!
Работает!!!


Время: 07:06.

Время: 07:06.
© OSzone.net 2001-