|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBS/WSH/JS - [решено] Добавление и удаление в реестр |
|
VBS/WSH/JS - [решено] Добавление и удаление в реестр
|
Новый участник Сообщения: 5 |
Господа имеется проблемка, необходимо добавлять и удалять периодически некоторые параметры реестра
все они в архиве, хотелось бы все это делать через vbs скриптик, то есть каждое дейтвие по отдельности - всего 4 скрипта, но я не силен, выручайте |
|
Отправлено: 15:46, 12-08-2013 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 15:54, 12-08-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать Нашел то что мне нужно, вот кто бы объяснил как мне мои файлы реестра сюда прописать?
'========================================================================== ' ' NAME: Reg.vbs ' ' AUTHOR: Dennis C. Eijkelboom ' DATE : 23-12-2010 ' ' SYNTAX: ' cscript reg.vbs <regfilepaths> ' ' EXAMPLE: ' cscript reg.vbs proxyserver.reg searchscopes.reg ' '========================================================================== Option Explicit Dim FileSystemObject: Set FileSystemObject = CreateObject("Scripting.FileSystemObject") Dim objWSHShell: Set objWSHShell = CreateObject("WScript.Shell") Call Main Set FileSystemObject = Nothing Set objWSHShell = Nothing Sub Main 'Process all registry export files that are passed through as commandline parameters Const ForReading = 1 Const OpenAsUnicode = -1 Dim RegFile Dim argument For Each argument In WScript.Arguments Set RegFile = FileSystemObject.OpenTextFile(argument,ForReading,,OpenAsUnicode) ProcessRegFile RegFile RegFile.Close Set RegFile = Nothing Next End Sub Sub ProcessRegFile(RegFile) 'Read through the registry file and write each registry value Dim line: line = "" Dim key: key = "" Dim name: name = "" Dim value: value = "" While Not RegFile.AtEndOfStream line = RegFile.ReadLine If Left(line,1) = "[" Then 'key line key = Mid(line,2,Len(line)-2) ElseIf Left(line,1) = """" Then 'value line line = Mid(line,2,Len(line)-1) name = Left(line,InStr(line,"=")-2) value = Mid(line,Len(name)+3) If Len(key) > 0 And Len(name) > 0 And Len(value) > 0 Then ProcessRegValue key,name,value End If End If Wend End Sub Sub ProcessRegValue(key,name,value) 'Write the registry value under passed name and key key = Replace(Replace(key,"HKEY_lOCAL_MACHINE","HKLM"),"HKEY_CURRENT_USER","HKCU") If Left(value,6) = "dword:" Then value = Mid(value,7) Dim wordvalue: wordvalue = CLng("&H" & value) objWSHShell.RegWrite key & "\" & name,wordvalue,"REG_DWORD" Else value = Replace(Mid(value,2,Len(value)-2),"\\","\") objWSHShell.RegWrite key & "\" & name,value,"REG_SZ" End If End Sub |
Отправлено: 19:22, 12-08-2013 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать killapeps, не занимайтесь ерундой, я привёл Вам то, что нужно.
|
Отправлено: 04:56, 13-08-2013 | #4 |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать Iska, я еще раз говорю я профан в vbs, не хотите не помогайте, я задаю нормальный вопрос, скрипт я вытащил из ссылки которую Вы прислали, но его структуру не понимаю, описания там нет
|
|
Отправлено: 18:45, 13-08-2013 | #5 |
Пользователь Сообщения: 121
|
Профиль | Отправить PM | Цитировать killapeps, Вы свою проблему решаете или ждете, что ее решит добрый дядя с форума? В найденом скрипте хоть пытались разобраться? Вот эти строчки
Цитата killapeps:
|
|
Отправлено: 09:07, 14-08-2013 | #6 |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать torauma,Представьте себе пытался в батник прописать и запустить
Вот такая ошибочка: Reg.vbs(64, 9) Ошибка выполнения Microsoft vbscript: Недопустимый вызов или аргумент процедуры: 'Mid' Дальше не знаю что и как делать |
Отправлено: 11:26, 14-08-2013 | #7 |
Пользователь Сообщения: 121
|
Профиль | Отправить PM | Цитировать Вот и нужно было спрашивать, что с этой ошибкой делать, а не
Цитата killapeps:
Достаточно изменить скрипт вот так: '========================================================================== ' ' NAME: Reg.vbs ' ' AUTHOR: Dennis C. Eijkelboom ' DATE : 23-12-2010 ' ' SYNTAX: ' cscript reg.vbs <regfilepaths> ' ' EXAMPLE: ' cscript reg.vbs proxyserver.reg searchscopes.reg ' '========================================================================== Option Explicit Dim FileSystemObject: Set FileSystemObject = CreateObject("Scripting.FileSystemObject") Dim objWSHShell: Set objWSHShell = CreateObject("WScript.Shell") Call Main Set FileSystemObject = Nothing Set objWSHShell = Nothing Sub Main 'Process all registry export files that are passed through as commandline parameters Const ForReading = 1 Const OpenAsUnicode = -1 Dim RegFile Dim argument For Each argument In WScript.Arguments Set RegFile = FileSystemObject.OpenTextFile(argument,ForReading,,OpenAsUnicode) ProcessRegFile RegFile RegFile.Close Set RegFile = Nothing Next End Sub Sub ProcessRegFile(RegFile) 'Read through the registry file and write each registry value Dim line: line = "" Dim key: key = "" Dim name: name = "" Dim value: value = "" While Not RegFile.AtEndOfStream line = RegFile.ReadLine If Left(line,1) = "[" Then 'key line key = Mid(line,2,Len(line)-2) ElseIf Left(line,1) = """" Then 'value line line = Mid(line,2,Len(line)-1) name = Left(line,InStr(line,"=")-2) value = Mid(line,Len(name)+3) If Len(key) > 0 And Len(name) > 0 And Len(value) > 0 Then ProcessRegValue key,name,value End If End If Wend End Sub Sub ProcessRegValue(key,name,value) 'Write the registry value under passed name and key key = Replace(Replace(key,"HKEY_lOCAL_MACHINE","HKLM"),"HKEY_CURRENT_USER","HKCU") If Left(value,6) = "dword:" Then value = Mid(value,7) Dim wordvalue: wordvalue = CLng("&H" & value) objWSHShell.RegWrite key & "\" & name,wordvalue,"REG_DWORD" ElseIf value = "-" Then objWSHShell.RegDelete key & "\" & name Else value = Replace(Mid(value,2,Len(value)-2),"\\","\") objWSHShell.RegWrite key & "\" & name,value,"REG_SZ" End If End Sub |
|
Отправлено: 13:14, 14-08-2013 | #8 |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать Спасибо Вам torauma, но не все заработало, все же как то криво вытаскивает он параметры из рег файлов, решено было с помощью совета человека из другого сообщества использовать REG2EXE (обходит политику системы блокировки реестра)
У меня все запускается из бат файла и она мне наиболее подошла ![]() |
Отправлено: 13:57, 14-08-2013 | #9 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Добавление переменной в реестр через Пуск->Выполнить | gora | Скриптовые языки администрирования Windows | 1 | 23-05-2012 23:11 | |
VBS/WSH/JS - Добавление параметра в реестр с помощью VBS | team | Скриптовые языки администрирования Windows | 9 | 26-09-2011 08:12 | |
CMD/BAT - [решено] Добавление в реестр значения с кавычками | SANIOK_AV | Скриптовые языки администрирования Windows | 2 | 21-09-2011 11:20 | |
CMD/BAT - Добавление информации в реестр, с помощью мастера планирования заданий | achsel | Скриптовые языки администрирования Windows | 5 | 04-05-2010 18:42 | |
Разное - [решено] Реестр (добавление параметра в конец) | hackroute | Microsoft Windows 2000/XP | 2 | 08-11-2009 20:31 |
|