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