Kirillhome
Full Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору mugil_cephalus Цитата: %var1% возвращает раздел параметра, у параметра несколько значений и если значение не то, которое нужно, то нужное значение может быть в одноименном параметре, НО уже в другом разделе - поэтому проверка нужна в цикле, а позже - поздно | Если честно, не очень понял. "От печки".... Что вижу Код: mode con lines=6000 cd\ for /f "tokens=*" %%i in ('reg query "hklm\system" /s ^|findstr /i "HKEY_LOCAL_MACHINE\system D3DOGL_70835937"') do call:_1 "%%i" goto:eof :next1 echo _%var1%_ rem еще одна проверка, чтобы не удалить не то reg query %var1%|find /i "D3DOGL_70835937"|find /i "00000200" &® add "%var1%" /v D3DOGL_70835937 /t REG_BINARY /d 00000010 /f pause goto:eof :_1 echo %~1|find /i "HKEY_LOCAL_MACHINE\system" &&set "var1=%~1" echo %~1|find /i "D3DOGL_70835937"|find /i "00000200" &&goto:next1 goto:eof | Т.е. в конце концов, у параметр, имя которому D3DOGL_70835937 (и видимо, значение - 00000200) мы заменяем значение на 00000010 Я предложил в данном поиске Код: rem еще одна проверка, чтобы не удалить не то reg query %var1%|find /i "D3DOGL_70835937"|find /i "00000200" &® add "%var1%" /v D3DOGL_70835937 /t REG_BINARY /d 00000010 /f | т.к. у нас уже известна ветка - %var1%, обратиться сразу к значению параметра в данной ветке Код: reg query %var1% /v "D3DOGL_70835937"|find /i "00000200" &® add "%var1%" /v D3DOGL_70835937 /t REG_BINARY /d 00000010 /f | т.е. - удалить один FIND Где здесь "уже поздно" - я не вижу. Если же 00000200 - НЕ текущее значение параметра D3DOGL_70835937 ветки %var1%, а обязательное значение какого угодно параметра ветки %var1% (или какой-либо параметр в этой ветке) - то тогда моё предложение, конечно, ошибочно. Совсем для красоты, конечно, можно перед заменой ещё и экспортировать (сохранять) ветку %var1%. |