1

Тема: CMD: Проверка значения переменной реестра во всех пользоват. профилях

Доброго времени суток!

Хочу проверить значение переменной реестра 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 добавляется только имя профиля последнего по алфавиту, а не того в которм значение не соттветствует.

Подскажите пожалуйста, что не так делаю?

Заранее благодарен!

2

Re: CMD: Проверка значения переменной реестра во всех пользоват. профилях

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

3

Re: CMD: Проверка значения переменной реестра во всех пользоват. профилях

alexii, Спасибо огромное!
Работает!