Ru-Board.club
← Вернуться в раздел «Программы»

» Командная строка, батники, сценарии (bat, cmd)

Автор: mugil_cephalus
Дата сообщения: 19.01.2010 14:28
Rodgerland
у меня первая часть решилась - http://forum.ru-board.com/topic.cgi?forum=62&topic=17154&start=2220#18
теперь пострю отсев -

Цитата:
D3DOGL_70835937 REG_BINARY 00000010
D3DOGL_70835937 REG_BINARY 00000200
D3DOGL_70835937 REG_BINARY 00000010



Добавлено:
Rodgerland



Код: 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%_
reg query %var1%|find /i "D3DOGL_70835937"|find /i "00000200"
pause

:_1
echo %~1|find /i "HKEY_LOCAL_MACHINE\system" &&set "var1=%~1"
echo %~1|find /i "D3DOGL_70835937" &&goto:next1
goto:eof
Автор: mugil_cephalus
Дата сообщения: 19.01.2010 16:42
Rodgerland

так как у тебя три значения у одного параметра (а может эти параметры еще и в разных разделах)

Цитата:
D3DOGL_70835937 REG_BINARY 00000010
D3DOGL_70835937 REG_BINARY 00000200
D3DOGL_70835937 REG_BINARY 00000010
, то еще отпарси вот так:


Код: 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" &&reg add ....
pause

:_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
Автор: Rodgerland
Дата сообщения: 19.01.2010 20:35
mugil_cephalus

Там эти три значения не знаю каким боком попали, а точнее попали в список истории командной строки , а третия в список истории блокнота, но это не главное, главный HKEY_LOCAL_MACHINE\system и значение может быть не только 00000200, 00000010, но и всякое другое.

Добавлено:

Цитата:
Код: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" &&reg 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


ЧТо-то в начале пишит слишком длинная строка, потом перебирает реестр и ничего не меняет...хм..
Автор: mugil_cephalus
Дата сообщения: 19.01.2010 21:30
Rodgerland
у параметра D3DOGL_70835937 какое значение нужно найти и на какое заменить?
строка echo _%var1%_ чего показывает?

Добавлено:
у меня прототип работает (раздел находит)

Код: mode con lines=6000
cd\

for /f "tokens=*" %%i in ('reg query "hklm\hardware" /s ^|findstr /i "HKEY_LOCAL_MACHINE\hardware VideoBiosDate"') do call:_1 "%%i"
goto:eof

:next1
echo _%var1%_
pause

:_1
echo %~1|find /i "HKEY_LOCAL_MACHINE\hardware" &&set "var1=%~1"
echo %~1|find /i "VideoBiosDate" &&goto:next1
goto:eof
Автор: Rodgerland
Дата сообщения: 19.01.2010 22:11
mugil_cephalus

D3DOGL_70835937 значение может быть абсолютна разное, а просто заменить на 00000010

_%var1%_ вообще ничего не показывает, изначально пишит слишком длинная строка...
Автор: mugil_cephalus
Дата сообщения: 19.01.2010 22:15
Rodgerland
много ли всего параметров D3DOGL_70835937 ?
менять у всех параметров D3DOGL_70835937 значение на 00000010 ?
введи в cmd - reg query "hklm\system" /s|find /i "D3DOGL_70835937" и покажи листинг

Добавлено:

Цитата:
_%var1%_ вообще ничего не показывает, изначально пишит слишком длинная строка...

у меня вот:
G:\scripts\test>cd\

G:\>for /F "tokens=*" %i in ('reg query "hklm\hardware" /s |findstr /i "HKEY_LOCAL_MACHINE\hardware VideoBiosDate"') do call:_1 "%i"
FINDSTR: Слишком длинная строка 15.
FINDSTR: Слишком длинная строка 15.
FINDSTR: Слишком длинная строка 15.
FINDSTR: Слишком длинная строка 15.
FINDSTR: Слишком длинная строка 15.
FINDSTR: Слишком длинная строка 15.
FINDSTR: Слишком длинная строка 15.
FINDSTR: Слишком длинная строка 15.
FINDSTR: Слишком длинная строка 15.
FINDSTR: Слишком длинная строка 15.
FINDSTR: Слишком длинная строка 15.
FINDSTR: Слишком длинная строка 15.
FINDSTR: Слишком длинная строка 15.
FINDSTR: Слишком длинная строка 15.
FINDSTR: Слишком длинная строка 15.
FINDSTR: Слишком длинная строка 15.
FINDSTR: Слишком длинная строка 125.
FINDSTR: Слишком длинная строка 286.
FINDSTR: Слишком длинная строка 287.

G:\>call:_1 "HKEY_LOCAL_MACHINE\hardware"

.............................
много строк
............................

G:\>echo _HKEY_LOCAL_MACHINE\hardware\DESCRIPTION\System_
_HKEY_LOCAL_MACHINE\hardware\DESCRIPTION\System_

G:\>pause
Для продолжения нажмите любую клавишу . . .
-----------------------------------------------------------------------
до pause доходит? покажи строку перед pause
Автор: Rodgerland
Дата сообщения: 19.01.2010 22:21
mugil_cephalus


Цитата:
D3DOGL_70835937
параметр всего один в системе больше быть не может, но как я уже замусарил реестр, у меня может мыть находить ссылки на историю этого файла, а значение менять именно на 00000010.


C:\>reg query "hklm\system" /s|find /i "D3DOGL_70835937"
D3DOGL_70835937 REG_BINARY 00000200
D3DOGL_70835937 REG_BINARY 00000200
D3DOGL_70835937 REG_BINARY 00000200

два остальные это мусор, а интересно будет менять в первом попавшимся ключе значение или во всех?..

Добавлено:
И
C:\>for /F "tokens=*" %i in ('reg query "hklm\hardware" /s |findstr /i "HKEY_LOCAL_MACHINE\hardware VideoBiosDate"') do
call:_1 "%i"
Непредвиденное появление: |.

Добавлено:
Секунду, сейчас еще разок попробую..
Автор: mugil_cephalus
Дата сообщения: 19.01.2010 22:35
Rodgerland

Цитата:
Добавлено:
И
C:\>for /F "tokens=*" %i in ('reg query "hklm\hardware" /s |findstr /i "HKEY_LOCAL_MACHINE\hardware VideoBiosDate"') do
call:_1 "%i"
Непредвиденное появление: |.


Цитата:
у меня вот:
G:\scripts\test>cd\

G:\>for /F "tokens=*" %i in ('reg query "hklm\hardware" /s |findstr /i "HKEY_LOCAL_MACHINE\hardware VideoBiosDate"') do call:_1 "%i"

это листинг
а в коде бата:

Цитата:
у меня прототип работает (раздел находит)

Код:mode con lines=6000
cd\

for /f "tokens=*" %%i in ('reg query "hklm\hardware" /s ^|findstr /i "HKEY_LOCAL_MACHINE\hardware VideoBiosDate"') do call:_1 "%%i"
goto:eof

:next1
echo _%var1%_
pause

:_1
echo %~1|find /i "HKEY_LOCAL_MACHINE\hardware" &&set "var1=%~1"
echo %~1|find /i "VideoBiosDate" &&goto:next1
goto:eof



Добавлено:

Rodgerland

Цитата:
D3DOGL_70835937 значение может быть абсолютна разное, а просто заменить на 00000010

по этой цитате исходное значение для замены может быть абсолютно любым

Цитата:
C:\>reg query "hklm\system" /s|find /i "D3DOGL_70835937"
D3DOGL_70835937 REG_BINARY 00000200
D3DOGL_70835937 REG_BINARY 00000200
D3DOGL_70835937 REG_BINARY 00000200

два остальные это мусор, а интересно будет менять в первом попавшимся ключе значение или во всех?..

по этой цитате, пусть даже есть мусор, значения все одинаковые - 00000200

так мне код настраивать на замену любого исходного значения, или только на замену исходного значения "00000200" ????
Автор: Rodgerland
Дата сообщения: 19.01.2010 22:54
Сейчас попробуй твой код еще раз, а настравивать на любое
Автор: mugil_cephalus
Дата сообщения: 19.01.2010 23:00
Rodgerland
так полный код же -
mode con lines=6000
cd\

for /f "tokens=*" %%i in ('reg query "hklm\hardware" /s ^|findstr /i "HKEY_LOCAL_MACHINE\hardware VideoBiosDate"') do call:_1 "%%i"
goto:eof

:next1
echo _%var1%_
pause

:_1
echo %~1|find /i "HKEY_LOCAL_MACHINE\hardware" &&set "var1=%~1"
echo %~1|find /i "VideoBiosDate" &&goto:next1
goto:eof

сделай тогда так:
mode con lines=6000
cd\

for /f "tokens=*" %%i in ('reg query "hklm\hardware" /s ^|findstr /i "HKEY_LOCAL_MACHINE\hardware VideoBiosDate"') do call:_1 "%%i"
REM goto:eof

:next1
echo _%var1%_
pause

:_1
echo %~1|find /i "HKEY_LOCAL_MACHINE\hardware" &&set "var1=%~1"
echo %~1|find /i "VideoBiosDate" &&goto:next1
goto:eof
и запусти файл из консоли - тогда точно не пропадет

не то вставил

так полный код же -
Код: 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" &&reg 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
Автор: Rodgerland
Дата сообщения: 19.01.2010 23:12

Код: 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"
REM goto:eof

:next1
echo _%var1%_
rem еще одна проверка, чтобы не удалить не то
reg query %var1%|find /i "D3DOGL_70835937"|find /i "00000200" &&reg 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
Автор: mugil_cephalus
Дата сообщения: 19.01.2010 23:35
Rodgerland
так понятно - спец.символы - & - в выводе

Цитата:
C:\>reg query "hklm\system" /s|find /i "D3DOGL_70835937"
D3DOGL_70835937 REG_BINARY 00000200
D3DOGL_70835937 REG_BINARY 00000200
D3DOGL_70835937 REG_BINARY 00000200

два остальные это мусор,

1) посмотри через GUI regedit - исх. параметр D3DOGL_70835937 идет по списку/дереву реестра первым, а мусор после?
2) значения у мусора менять не будем ?
Автор: Rodgerland
Дата сообщения: 19.01.2010 23:55
mugil_cephalus

хм...Почистил реестр, удалил лишнее...
Наверно во всех надо изменить.


Код:
reg query "hklm\system" /s|find /i "D3DOGL_70835937"

D3DOGL_70835937 REG_BINARY 00000200
D3DOGL_70835937 REG_BINARY 00000200
D3DOGL_70835937 REG_BINARY 00000200


Автор: mugil_cephalus
Дата сообщения: 20.01.2010 00:03
Rodgerland

Цитата:
попорядку...
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Video\{4905C349-A802-42C7-B4AD-40C8E1F34419}\0000]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Video\{4905C349-A802-42C7-B4AD-40C8E1F34419}\0000]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\{4905C349-A802-42C7-B4AD-40C8E1F34419}\0000]

а кто главный сейчас попробую узнать...


а это не важно - пути все равно меняются, как ты говорил -
Цитата:
{4905C349-A802-42C7-B4AD-40C8E1F34419} - только у меня такой и не обязательно что будет в папке ControlSet001, главное что в разделе HKEY_LOCAL_MACHINE\SYSTEM

Автор: Rodgerland
Дата сообщения: 20.01.2010 00:03
Изменяю настройки в меню и изменяются параметры
ControlSet001
CurrentControlSet
вот, но наверно всем значение одинаковое надо ставить.
Автор: mugil_cephalus
Дата сообщения: 20.01.2010 00:09
код подойдет старый, только нужно изменить, чтобы менял у всех параметров D3DOGL_70835937, а не только у одного, и любые исх. значения, а не только 00000200 и экранировать спец.символы


Код: 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"
REM goto:eof

:next1
echo _%var1%_
rem еще одна проверка, чтобы не удалить не то
reg query %var1%|find /i "D3DOGL_70835937"|find /i "00000200" &&reg 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
Автор: Rodgerland
Дата сообщения: 20.01.2010 00:28
mugil_cephalus


Код:
C:\>cd\

C:\>for /F "tokens=*" %i in ('reg query "hklm\system" /s |findstr /i "HKEY_LOCAL_MACHINE\system D3DOGL_70835937"') do ca
ll:_1 "%i"
FINDSTR: Слишком длинная строка 23.
FINDSTR: Слишком длинная строка 27.
FINDSTR: Слишком длинная строка 572.
FINDSTR: Слишком длинная строка 9130.
FINDSTR: Слишком длинная строка 9130.
FINDSTR: Слишком длинная строка 9130.
FINDSTR: Слишком длинная строка 10807.
FINDSTR: Слишком длинная строка 10807.
FINDSTR: Слишком длинная строка 10807.
.....
C:\>call:_1 "HKEY_LOCAL_MACHINE\system\ControlSet001"

C:\>echo HKEY_LOCAL_MACHINE\system\ControlSet001 | find /i "HKEY_LOCAL_MACHINE\system" && set "var1=HKEY_LOCAL_MACHIN
E\system\ControlSet001"
HKEY_LOCAL_MACHINE\system\ControlSet001

C:\>echo HKEY_LOCAL_MACHINE\system\ControlSet001 | find /i "D3DOGL_70835937" | find /i "00000200" && goto:next1


C:\>goto:eof

C:\>call:_1 "HKEY_LOCAL_MACHINE\system\ControlSet001\Control"

C:\>echo HKEY_LOCAL_MACHINE\system\ControlSet001\Control | find /i "HKEY_LOCAL_MACHINE\system" && set "var1=HKEY_LOCA
L_MACHINE\system\ControlSet001\Control"
HKEY_LOCAL_MACHINE\system\ControlSet001\Control

C:\>echo HKEY_LOCAL_MACHINE\system\ControlSet001\Control | find /i "D3DOGL_70835937" | find /i "00000200" && goto:ne
xt1

C:\>goto:eof

C:\>call:_1 "HKEY_LOCAL_MACHINE\system\ControlSet001\Control\AGP"

C:\>echo HKEY_LOCAL_MACHINE\system\ControlSet001\Control\AGP | find /i "HKEY_LOCAL_MACHINE\system" && set "var1=HKEY_
LOCAL_MACHINE\system\ControlSet001\Control\AGP"
HKEY_LOCAL_MACHINE\system\ControlSet001\Control\AGP

(Делее что-то много ключей выводит)

C:\>echo HKEY_LOCAL_MACHINE\system\ControlSet001\Control\CriticalDeviceDatabase\pci#cc_0601 | find /i "D3DOGL_70835937"
| find /i "00000200" && goto:next1

C:\>goto:eof

C:\>call:_1 "HKEY_LOCAL_MACHINE\system\ControlSet001\Control\CriticalDeviceDatabase\pci#cc_0604"

C:\>echo HKEY_LOCAL_MACHINE\system\ControlSet001\Control\CriticalDeviceDatabase\pci#cc_0604 | find /i "HKEY_LOCAL_MACHI
NE\system" && set "var1=HKEY_LOCAL_MACHINE\system\ControlSet001\Control\CriticalDeviceDatabase\pci#cc_0604"
HKEY_LOCAL_MACHINE\system\ControlSet001\Control\CriticalDeviceDatabase\pci#cc_0604

C:\>echo HKEY_LOCAL_MACHINE\system\ControlSet001\Control\CriticalDeviceDatabase\pci#cc_0604 | find /i "D3DOGL_70835937"
| find /i "00000200" && goto:next1

C:\>goto:eof

C:\>call:_1 "HKEY_LOCAL_MACHINE\system\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_8086&dev_244e"

C:\>echo HKEY_LOCAL_MACHINE\system\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_8086 & dev_244e | find /i "HKEY
_LOCAL_MACHINE\system" && set "var1=HKEY_LOCAL_MACHINE\system\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_808
6&dev_244e"
HKEY_LOCAL_MACHINE\system\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_8086
"dev_244e" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

C:\>

Автор: mugil_cephalus
Дата сообщения: 20.01.2010 11:49
Rodgerland
это есть оказывается такой мудренный раздел, где в самом имени раздела есть спецсимволы - "&" - (вот у меня тоже) - HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_8086&dev_244e - я думал в имени раздела спецсимволов не будет - только в именах параметров и значений, а их код в вывод не выводит

Добавлено:
Rodgerland
так, вот код, который ищет все параметры D3DOGL_70835937 во всех разделах в корневом разделе hklm и для всех параметров D3DOGL_70835937 меняет любые их значения на значение - 00000010
осталось только экранировать спецсимволы, но здесь проблема - надо еще посмотреть какие спецсимволы могут попасться кроме &
вопрос: в имени раздела, где может находиться твой параметр D3DOGL_70835937 не могут встретися символы: & && ( ) < > | @ ^ если точно не могут, то, думаю легче будет парсить - там посмотрим


Код: 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"
pause
goto:eof

:_1
echo %~1|find /i "HKEY_LOCAL_MACHINE\system" &&set "var1=%~1"
echo %~1|find /i "D3DOGL_70835937" &&(
echo _%var1%_
rem еще одна проверка, чтобы не удалить не то
reg query %var1%|find /i "D3DOGL_70835937" &&reg add "%var1%" /v D3DOGL_70835937 /t REG_BINARY /d 00000010 /f
)
goto:eof
Автор: Rodgerland
Дата сообщения: 20.01.2010 15:42
mugil_cephalus

В двух кодах что с ключем f , то без выдает ошибку не изменяя значение.


Код:
C:\>goto:eof

C:\>call:_1 "HKEY_LOCAL_MACHINE\system\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_8086&dev_244e"

C:\>echo HKEY_LOCAL_MACHINE\system\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_8086 & dev_244e | find /i "HKEY
_LOCAL_MACHINE\system" && set "var1=HKEY_LOCAL_MACHINE\system\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_808
6&dev_244e"
HKEY_LOCAL_MACHINE\system\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_8086
"dev_244e" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

Автор: mugil_cephalus
Дата сообщения: 20.01.2010 16:09
Rodgerland
сделал себе так:
X:\>echo HKEY_LOCAL_MACHINE\system\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_8086&dev_244e|find /v "&"
HKEY_LOCAL_MACHINE\system\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_8086
"dev_244e" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

X:\>

очень любопытная обработка

понял, походу, нужно по-другому "избавляться" от &
Автор: bomzzz
Дата сообщения: 20.01.2010 16:18
сижу разбираюсь как службу запустить - может кому пригодится
ECHO OFF
COLOR 9F
CLS
rem wmic LOADORDER LIST FULL
REM wmic LOADORDER GET STATUS
rem WMIC SERVICE where (state="running") GET caption, name, state
rem WMIC SERVICE where caption='TELNET' CALL STARTSERVICE
rem WMIC service list brief
pause
Автор: mugil_cephalus
Дата сообщения: 20.01.2010 16:32
ничего не пойму - все работает:
в консоли выполнил 2 кода
1-ый:
G:\scripts\test>reg query "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase"
вывод:
..................
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#cc_0604

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_8086&dev_244e

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_8086&dev_24d0

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_8086&dev_24d3

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_8086&dev_24db

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_8086&dev_2570

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_8086&dev_2571

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_8086&dev_2576

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\primary_ide_channel
..................
2-ой
G:\scripts\test>reg query "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase" | findstr /i "HKEY_LOCAL_MACHINE\system" |
find /v "&"
вывод:
.................
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#cc_0604
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\primary_ide_channel
.................


поэтому у тебя в оператор CALL никаким образом не должны попадать строки с "pci#ven_8086&dev_244e" из итератора, так как эти строки отсеиваються еще в итераторе

Добавлено:
Rodgerland
все понятно, удали из нижеслед. кода зеленый символ:

Код: mode con lines=6000
cd\

for /f "tokens=*" %%i in ('reg query "hklm\system" /s ^|findstr /i "HKEY_LOCAL_MACHINE\system D3DOGL_70835937" ^|find /v "^&"') do call:_1 "%%i"
pause
goto:eof

:_1
echo %~1|find /i "HKEY_LOCAL_MACHINE\system" &&set "var1=%~1"
echo %~1|find /i "D3DOGL_70835937" &&(
echo _%var1%_
rem еще одна проверка, чтобы не удалить не то
reg query %var1%|find /i "D3DOGL_70835937" &&reg add "%var1%" /v D3DOGL_70835937 /t REG_BINARY /d 00000010 /f
)
goto:eof
Автор: Rodgerland
Дата сообщения: 20.01.2010 17:47
mugil_cephalus

Ура, отлично работает, надо запомнить код, еще запускать с силиент вообще супер будет.
Только вот странно, что в этих ключах изменяется

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Video\{4905C349-A802-42C7-B4AD-40C8E1F34419}\0000]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\{4905C349-A802-42C7-B4AD-40C8E1F34419}\0000]

,а в этом нет
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Video\{4905C349-A802-42C7-B4AD-40C8E1F34419}\0000]

Если в поиске указываю конкретный путь HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002 то находит и изменяет.
Добавлено:
Впринцие 002 я так думаю не нужен, главное главные все заменяет.

Добавлено:
mugil_cephalus

Спасибо, потрудился на славу =)
Автор: mugil_cephalus
Дата сообщения: 20.01.2010 22:28
Rodgerland
у меня все работает (правда, 60 мин. работы, 70% CPU load, 600 Kb log'a с echo off )
[more]

Код: time /t
mode con lines=30000
REM reg add HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Vid\{5555} /v D3DOGL_70835937_RRRRRRRRRR /t REG_BINARY /d 00000200
REM reg add HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Vid\{5555} /v D3DOGL_70835937_RRRRRRRRRR /t REG_BINARY /d 20000000
REM pause

reg query HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Vid\{5555} /v D3DOGL_70835937_RRRRRRRRRR
reg query HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Vid\{5555} /v D3DOGL_70835937_RRRRRRRRRR
reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Vid\{5555} /v D3DOGL_70835937_RRRRRRRRRR
pause

echo off
REM mode con lines=6000
cd\

for /f "tokens=*" %%i in ('reg query "hklm\system" /s ^|findstr /i "HKEY_LOCAL_MACHINE\system D3DOGL_70835937_RRRRRRRRRR" ^|find /v "&" ^|find /v "&&" ^|find /v "(" ^|find /v ")" ^|find /v "<" ^|find /v ">" ^|find /v "@" ^|find /v "^" ^|find /v "|"') do call:_1 "%%i"
goto:next1

:_1
echo %~1|find /i "HKEY_LOCAL_MACHINE\system" &&set "var1=%~1"
echo %~1|find /i "D3DOGL_70835937_RRRRRRRRRR" &&(
echo _%var1%_
rem еще одна проверка, чтобы не удалить не то
reg query %var1%|find /i "D3DOGL_70835937_RRRRRRRRRR" &&reg add "%var1%" /v D3DOGL_70835937_RRRRRRRRRR /t REG_BINARY /d 00000010
)
echo %~1|find /i "D3DOGL_70835937">>test
goto:eof

:next1
reg query HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Vid\{5555} /v D3DOGL_70835937_RRRRRRRRRR
reg query HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Vid\{5555} /v D3DOGL_70835937_RRRRRRRRRR
reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Vid\{5555} /v D3DOGL_70835937_RRRRRRRRRR
pause
Автор: Rodgerland
Дата сообщения: 20.01.2010 23:06
mugil_cephalus

Нда, жестко, я не выдержал так долго, у меня в среднем 85% CPU
Автор: bomzzz
Дата сообщения: 21.01.2010 14:03
в reg organizer-е есть поиск с заменой
Автор: Weinaum
Дата сообщения: 21.01.2010 19:28
Второй вопрос, если можно,
задача такая, при запуске батника проверяется определенное интернет-соединение - с неким сайтом, можно по домену или по IP- без разницы. Если такое соединение установлено - передать исполнение другому файлу.
Сложно ли технически?
Автор: mitkadritka
Дата сообщения: 22.01.2010 03:05
Сил моих больше нет. Не хочет корректно срабатывать отключение дисплея: отключится через установленные ему десять минут и сразу снова включается. Спать мне жутко через это. Беда обычно происходит после работы просмотровщиков видео или ТВ-программы (BeholdTV у меня) в полноэкранном режиме. Может быть дрова не те, а может ещё что-то. Но я уже, и дрова менял, и все настройки, и экрана, и дров, и софта перепробовал.

Помогает одно: два раза (одного бывает мало) залезть в «Свойства экрана — Заставка — Питание» и выставить уже итак выставленное Отключение дисплея через десять минут. Вот тогда срабатывает как надо и ночью мне становится счастье в виде сна под чёрный экран и плавно закачиваемые фильмы с торрентов.

Поэтому просьба: а напишите мне пожалуйста батник, выполняющий действия по отключению дисплея через те десять минут. А уж я его тогда себе на кнопку пульта повешу, буду этак удалённо гасить монитор и вас добром вспоминать. А не напишите — шмальнусь с дула и записку оставлю.
Автор: bomzzz
Дата сообщения: 22.01.2010 03:29
просмотровщики
Автор: mitkadritka
Дата сообщения: 22.01.2010 06:33
bomzzz, с какой целью мне предотвращать некий хранитель экрана? И тем более мутить для этого ещё какой-то софт? Во-первых, мне нужно наоборот -- сделать так, чтобы дисплей не включался сразу после того, как отключится. А, во-вторых, настолько затейливый ход как установку супер умного софта меня никак не бодрит, пусть это и было бы единственным методом.

Вообще, если просят батник, то это кое-что значит. Это я к тому, что, предвосхищая ваш следующий совет, заявляю сразу: переустанавливать Винду не буду, не уговаривайте.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: SAS.Планета (часть 2)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.