Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)

Модерирует : gyra, Maz

Widok (03-03-2010 16:29): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Командная строка, батники\сценарии (bat, cmd)
(часть 1) (часть 2)
Вопросы, задачи и их решения по работе с командной строкой, файлами, а также сопутствующие ссылки.

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Microsoft Windows » Задачи на bat-файлах 5
 
Полезные ссылки:
· Cmd. Описание от разработчиков
· Урок bat-аники (для начинающих)
· Курс лекций для начинающих. Полезно и просто описано
· Набор GNU утилит для win32
· Пакет утилит для организации интерфейса в bat-файлах
· Использование ansi.sys
· cmdow — изменение параметров и видимости дос-окна
· blat — отправка почты из консоли
· Справка по командам в виде Html
· Команды RunDll32
· Quick Batch File Compiler - Позволяет превратить ваш батник в независимое приложение
· Пример - получение и обработка списка пользователей
· Уильям Станек - Командная строка Microsoft Windows (вплоть до w2k3)
· Простой способ получать текущую дату всегда в одном формате (не зависит от языков и настроек)
· Переход из 32-битной версии cmd.exe в 64-битную

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 12:38 10-03-2009 | Исправлено: TechnicsKuzya, 13:54 27-12-2009
mugil_cephalus

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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"  ????

Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 23:35 19-01-2010
Rodgerland

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Сейчас попробуй твой код еще раз, а настравивать на любое

Всего записей: 27 | Зарегистр. 26-01-2007 | Отправлено: 23:54 19-01-2010 | Исправлено: Rodgerland, 23:56 19-01-2010
mugil_cephalus

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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  

 
сделай тогда так:

Код:
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  

 
и запусти файл из консоли - тогда точно не пропадет  
 
 
 
Добавлено:
так исх. значение может быть любым, а исх. параметр D3DOGL_70835937 может быть только один (не считая мусора) ??

Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 00:00 20-01-2010 | Исправлено: mugil_cephalus, 00:09 20-01-2010
Rodgerland

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
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  

 
вывод
 
Добавлено:

Код:
 
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.
FINDSTR: Слишком длинная строка 10807.
FINDSTR: Слишком длинная строка 10807.
 
переборка ключей....
падобных ниже...
 
C:\>goto:eof
 
C:\>call:_1 "HKEY_LOCAL_MACHINE\system\ControlSet001\Control\CriticalDeviceDatabase\pci#cc_0601"
 
C:\>echo HKEY_LOCAL_MACHINE\system\ControlSet001\Control\CriticalDeviceDatabase\pci#cc_0601  | find /i "HKEY_LOCAL_MACHI
NE\system"   && set "var1=HKEY_LOCAL_MACHINE\system\ControlSet001\Control\CriticalDeviceDatabase\pci#cc_0601"
HKEY_LOCAL_MACHINE\system\ControlSet001\Control\CriticalDeviceDatabase\pci#cc_0601
 
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:\>
 
 

 
Добавлено:
блин, раньше же какой-то код выводил полный путь в варе...
 
Добавлено:

Цитата:
так исх. значение может быть любым, а исх. параметр D3DOGL_70835937 может быть только один (не считая мусора) ??

Совершенно верно.

Всего записей: 27 | Зарегистр. 26-01-2007 | Отправлено: 00:12 20-01-2010 | Исправлено: Rodgerland, 00:14 20-01-2010
mugil_cephalus

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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) значения у мусора менять не будем ?

Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 00:35 20-01-2010
Rodgerland

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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
 
 
 

 
попорядку...
[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]
 
а кто главный сейчас попробую узнать...

Всего записей: 27 | Зарегистр. 26-01-2007 | Отправлено: 00:55 20-01-2010 | Исправлено: Rodgerland, 00:58 20-01-2010
mugil_cephalus

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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


Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 01:03 20-01-2010
Rodgerland

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Изменяю настройки в меню и изменяются параметры  
ControlSet001
CurrentControlSet
вот, но наверно всем значение одинаковое надо ставить.

Всего записей: 27 | Зарегистр. 26-01-2007 | Отправлено: 01:03 20-01-2010
mugil_cephalus

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
код подойдет старый, только нужно изменить, чтобы менял у всех параметров 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  

 
Добавлено:

Цитата:
Изменяю настройки в меню и изменяются параметры  
ControlSet001  
CurrentControlSet  
вот, но наверно всем значение одинаковое надо ставить.

насколько помню, CurrentControlSet - это "ярлык" на один из ControlSet00x

Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 01:09 20-01-2010
Rodgerland

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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:\>
 
 

 
Может без проверки обойтись, я так понимаю нужный ключь он находит из первых, так может и сразу все менять...
Ну не изменил.
 
Добавлено:

Код:
 
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" не является внутренней или внешней  
командой, исполняемой программой или пакетным файлом.
 

ЧТо это такое и почему сюда-то залез...

Всего записей: 27 | Зарегистр. 26-01-2007 | Отправлено: 01:28 20-01-2010
mugil_cephalus

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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
 
 
только ты код сначал протестируй на чем-то и отбэкапь изменяемые ключи реестра
 
---------------------------------------------------------------------------
вот так можно попробовать:
 

Код:
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

еще можешь пока убрать ключ /f - а потом, если нормально отработает, - вернуть

Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 12:49 20-01-2010 | Исправлено: mugil_cephalus, 13:29 20-01-2010
Rodgerland

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
 
 

 
У тебя железные нервы.
 
в ручном поиске символа ^ нет в этом разделе.

Всего записей: 27 | Зарегистр. 26-01-2007 | Отправлено: 16:42 20-01-2010
mugil_cephalus

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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:\>
 
очень любопытная обработка

 
понял, походу, нужно по-другому "избавляться" от &

Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 17:09 20-01-2010 | Исправлено: mugil_cephalus, 17:33 20-01-2010
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
сижу разбираюсь как службу запустить - может кому пригодится
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

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 17:18 20-01-2010
mugil_cephalus

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ничего не пойму - все работает:
в консоли выполнил 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

Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 17:32 20-01-2010 | Исправлено: mugil_cephalus, 17:52 20-01-2010
Rodgerland

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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
 
Спасибо, потрудился на славу =)

Всего записей: 27 | Зарегистр. 26-01-2007 | Отправлено: 18:47 20-01-2010 | Исправлено: Rodgerland, 19:04 20-01-2010
mugil_cephalus

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Rodgerland
у меня все работает (правда, 60 мин. работы, 70% CPU load, 600 Kb log'a с echo off      )
Подробнее...

Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 23:28 20-01-2010 | Исправлено: mugil_cephalus, 23:40 20-01-2010
Rodgerland

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mugil_cephalus
 
Нда, жестко, я не выдержал так долго, у меня в среднем 85% CPU

Всего записей: 27 | Зарегистр. 26-01-2007 | Отправлено: 00:06 21-01-2010
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
в reg organizer-е есть поиск с заменой

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 15:03 21-01-2010
Weinaum



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Второй вопрос, если можно,
задача такая, при запуске батника проверяется определенное интернет-соединение - с неким сайтом, можно по домену или по IP- без разницы. Если такое соединение установлено - передать исполнение другому файлу.
Сложно ли технически?

Всего записей: 2060 | Зарегистр. 18-06-2006 | Отправлено: 20:28 21-01-2010
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)
Widok (03-03-2010 16:29): Лимит страниц. Продолжаем здесь.


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru