PDA

Показать полную графическую версию : [решено] Проверка значения переменной реестра во всех пользовательских профилях


SANIOK_AV
08-07-2013, 17:13
Доброго времени суток!
Хочу проверить значение переменной реестра 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
SANIOK_AV, как обычно: «setlocal enableextensions enabledelayedexpansion» в начале и «echo !env!», «if /i "-!env!" neq "-1"», «set result=!result!_%%i» внутри скобок (может, ещё где недоглядел аналогичное использование).

SANIOK_AV
09-07-2013, 15:20
Iska, Cпасибо огромное!
Работает!!!




© OSzone.net 2001-2012