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