mugil_cephalus
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору for /f "tokens=*" %%i in ('reg query "hklm\system" /s ^|findstr /i /n "HKEY_LOCAL_MACHINE\system D3DOGL_70835937"') do for /f "tokens=1 delims=[]" %%a in ('echo %%i') do set "skip1=%%a" &&goto:next :next for /f "skip=%skip1% tokens=*" %%i in ('reg query "hklm\system" /s ^|findstr /i "HKEY_LOCAL_MACHINE\system D3DOGL_70835937"') do for /f "tokens=*" %%a in ('echo %%i ^|find /i "HKEY_LOCAL_MACHINE\system"') do set "var=%%a" &&goto:next2 :next2 for /f "tokens=*" %%i in ('reg query "hklm\system" /s ^|findstr /i "HKEY_LOCAL_MACHINE\system D3DOGL_70835937"') do if "_%%i" neq "_%var%" set "var2=%%i" &if "_%%i" equ "_%var%" goto:next3 :next3 echo _%var2%_ pause Добавлено: Rodgerland Цитата: полностью видимо весь реестр стал выдавать на экран. | это естественно - код все перебирает - у тебя же не известен точно раздел вывод потом всегда можно в nul отправить, там идет проверка в конструкции IF можно для удобочитаемости вставить вначале кода mode con lines=6000 cd\ Добавлено: Rodgerland я еще немного модифицировал код - у меня работает, но пока отлавливает не точто нужно G:\scripts\test>cd\ G:\>for /F "tokens=*" %i in ('reg query "hklm\hardware" /s |findstr /i "HKEY_LOCAL_MACHINE\hardware VideoBiosDate"') do for /F "tokens=*" %a in ( 'echo %i |find /i /n "VideoBiosDate"') do for /F "tokens=1 delims=[]" %B in ('echo %a') do set "skip1=%B" && goto:next FINDSTR: Слишком длинная строка 15. FINDSTR: Слишком длинная строка 15. FINDSTR: Слишком длинная строка 15. FINDSTR: Слишком длинная строка 15. FINDSTR: Слишком длинная строка 15. FINDSTR: Слишком длинная строка 125. FINDSTR: Слишком длинная строка 286. FINDSTR: Слишком длинная строка 287. G:\>for /F "tokens=*" %a in ('echo HKEY_LOCAL_MACHINE\hardware |find /i /n "VideoBiosDate"') do for /F "tokens=1 delims=[]" %B in ('echo %a') do set "skip1=%B" && goto:next G:\>for /F "tokens=*" %a in ('echo HKEY_LOCAL_MACHINE\hardware\ACPI |find /i /n "VideoBiosDate"') do for /F "tokens=1 delims=[]" %B in ('echo %a' ) do set "skip1=%B" && goto:next .......... G:\>if "_HKEY_LOCAL_MACHINE\hardware\RESOURCEMAP\System Resources\Reserved" NEQ "_HKEY_LOCAL_MACHINE\hardware\ACPI " set "var2=HKEY_LOCAL_MACHINE \hardware\RESOURCEMAP\System Resources\Reserved" & if "_HKEY_LOCAL_MACHINE\hardware\RESOURCEMAP\System Resources\Reserved" EQU "_HKEY_LOCAL_MAC HINE\hardware\ACPI " goto:next3 G:\>echo _HKEY_LOCAL_MACHINE\hardware\RESOURCEMAP\System Resources\Reserved_ _HKEY_LOCAL_MACHINE\hardware\RESOURCEMAP\System Resources\Reserved_ G:\>pause Для продолжения нажмите любую клавишу . . . Добавлено: Rodgerland пока первую часть проблемы решил - отловил то, что нужно - потом буду дальше смотреть вот слегка неотлаженный код, но, главное со своей задачей справился у меня - отловил, то, чего я хотел Код: mode con lines=6000 cd\ for /f "tokens=*" %%i in ('reg query "hklm\hardware" /s ^|findstr /i /n "HKEY_LOCAL_MACHINE\hardware VideoBiosDate"') do call:_1 "%%i" pause :_1 echo %~1|find /i "VideoBiosDate" &&for /f "tokens=1 delims=:" %%a in ('echo %~1') do echo %%a>>n2 goto:eof | вот листинг: ............................ G:\>goto:eof G:\>call:_1 "46: VideoBiosDate REG_SZ 04/11/02" G:\>echo 46: VideoBiosDate REG_SZ 04/11/02 | find /i "VideoBiosDate" && for /F "tokens=1 delims=:" %a in ('echo 46: VideoBiosDate REG_SZ 04/11/02') do echo %a 1>>n2 46: VideoBiosDate REG_SZ 04/11/02 G:\>echo 46 1>>n2 G:\>goto:eof G:\>call:_1 "48:HKEY_LOCAL_MACHINE\hardware\DESCRIPTION\System\CentralProcessor" ............................ |