Войти

Показать полную графическую версию : [решено] Внесение в реестр данных через BAT файл


Страниц : [1] 2

Pozia
07-08-2009, 23:14
Подскажите как BAT ником вносить в реестр различные типы данных - Reg_Dword, Reg_SZ, hex... Спасибо

NiOl
08-08-2009, 00:34
Если файл с данными уже имеется, то можно обычным RegEdit`ом - у него есть нигде не описанные ключи, я их подсмотрел в ранних версиях FAR:

SaveSettings.bat
@echo off
rem This batch file saves Far settings from the registry
rem to files FarSave1.reg and FarSave2.reg

regedit /ea FarSave1.reg HKEY_CURRENT_USER\Software\Far
regedit /ea FarSave2.reg HKEY_LOCAL_MACHINE\Software\Far

RestoreSettings.bat
@echo off
rem This batch file restores Far settings from previously saved
rem files FarSave1.reg and FarSave2.reg to the registry

if not exist FarSave?.reg goto import

echo REGEDIT4 > "%TEMP%\$DelOld$.reg"
echo [-HKEY_CURRENT_USER\Software\Far] >> "%TEMP%\$DelOld$.reg"
echo [-HKEY_LOCAL_MACHINE\Software\Far] >> "%TEMP%\$DelOld$.reg"

start/wait regedit -s "%TEMP%\$DelOld$.reg"
del "%TEMP%\$DelOld$.reg" > nul

:import
echo REGEDIT4 > "%TEMP%\$DelCache$.reg"
echo [-HKEY_CURRENT_USER\Software\Far\PluginsCache] >> "%TEMP%\$DelCache$.reg"
start/wait regedit -s FarSave1.reg FarSave2.reg "%TEMP%\$DelCache$.reg"
del "%TEMP%\$DelCache$.reg" > nul

а вообще полезно познакомиться с мулькой "Reg": >> (http://forum.oszone.net/forumdisplay.php?f=102&filter_string=reg&filter_by=title)

Pozia
08-08-2009, 01:10
NiOl, мне нужно вот такого плана команды для всех остальных типов данных реестра:
Reg Add "HKLM\SOFTWARE\Mathsoft\Mathcad 14\FlexLM" /v LicensePath /d "%PROGRAMFILES%\Mathcad\Mathcad 14\license.dat" /F >Nul

Makzs
10-08-2009, 09:12
Тип данных указывается ключом /t

Reg Add "HKLM\SOFTWARE\Mathsoft\Mathcad 14\FlexLM" /v LicensePath /t Reg_SZ /d "%PROGRAMFILES%\Mathcad\Mathcad 14\license.dat" /F >Nul

Для типа данных REG_EXPAND_SZ нужно предварять знаком ^ знак % в переменных окружения, например:

Reg Add "HKLM\SOFTWARE\Mathsoft\Mathcad 14\FlexLM" /v LicensePath /t REG_EXPAND_SZ /d "^%PROGRAMFILES^%\Mathcad\Mathcad 14\license.dat" /F >Nul

Pozia
16-08-2009, 16:51
Makzs, не могу сообразить как внести батником такой вот твик:

[HKEY_CURRENT_USER\Control Panel\Desktop]
"UserPreferencesMask"=hex:90,32,07,80

помогите пожалуйста

Petya V4sechkin
16-08-2009, 18:36
Pozia, а вы наберите:
Reg Add /?
Там даже пример есть.
Reg Add "HKCU\Control Panel\Desktop" /V UserPreferencesMask /T REG_BINARY /D 90320780 /F

Cyber_Maniac
24-06-2010, 07:33
Уважамые, будте добры, ткните пальцем, где у меня ошибка:

нужно добавить посредствам командной строки вот эту запись:


[HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Plugins\01000400\Profiles\@My profile]
"SelectedServer"="\\\\192.168.44.111\\public\\nod_upd"

попытался сделать так, но говорит что ошибка в синтаксисе:

REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Plugins\01000400\Profiles\@My profile" /v SelectedServer /t REG_DWORD /d" \\\\192.168.44.111\\public\\nod_upd /f

sLiDeR-X
24-06-2010, 07:57
Cyber_Maniac, справкой прользуйтесь!
reg add /?
там написано:
<КОРЕНЬ> Корневой радел. Значения [ HKLM | HKCU | HKCR | HKU | HKCC ].

REG ADD "HKLM\SOFTWARE\ESET\ESET Security\CurrentVersion\Plugins\01000400\Profiles\@My profile" /f /v "SelectedServer" /t REG_SZ /d "\\192.168.44.111\public\nod_upd"

HuppeR
01-07-2010, 11:56
Не могу понять где ошибка...
REG ADD "HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles" /f /v "D:\Bases\Continent\" /t REG_SZ /d "Continent"
В реестр в name вносится строчка D:\Bases\Continent\" /t REG_SZ /d "Continent ?!?!
Если оставить двойные слеши то добавляется нормально, но путь к базе с двойными слешами не проканает.

рег файл видит так
[HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles]
"f:\\Applications\\1c\\Bases\\Continent\\"="Континент"

Разобрался...в моём случаем name это пусть к базе 1с.
для того чтобы работала ставим на конце имени(в мём случаем пути) второй \
REG ADD "HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles" /f /v "D:\Bases\Continent\\" /t REG_SZ /d "Continent"

Komoliddin_Fuzaylitdinov@fb
12-08-2018, 13:45
КАК открыть несколько reg файлов одним командом?
Например regedit /s *.reg

Iska
12-08-2018, 16:53
Komoliddin_Fuzaylitdinov@fb, одной — никак. Но можно — перебором:
for %i in (*.reg) do @regedit.exe /s "%~i"
Для пакетного файла:
for %%i in (*.reg) do regedit.exe /s "%%~i"

alpap
12-08-2018, 17:55
КАК открыть несколько reg файлов »

more *.reg

LEmiD
06-09-2018, 13:56
Win 7 64
не могу вписать значение с параметрами.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Unknown\shell\openas\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,72,00,75,00,\
6e,00,64,00,6c,00,6c,00,33,00,32,00,2e,00,65,00,78,00,65,00,20,00,25,00,53,\
00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,00,5c,00,73,00,\
79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,00,68,00,65,00,6c,00,6c,\
00,33,00,32,00,2e,00,64,00,6c,00,6c,00,2c,00,4f,00,70,00,65,00,6e,00,41,00,\
73,00,5f,00,52,00,75,00,6e,00,44,00,4c,00,4c,00,20,00,25,00,31,00,00,00
reg add HKCR\Unknown\shell\openas\command /ve /t REG_EXPAND_SZ /d "%SystemRoot%\system32\rundll32.exe %SystemRoot%\system32\shell32.dll,OpenAs_RunDLL %1" /fПолучаю значения вместо переменных.

Если поставить ^ перед % , то и получаю всё что в кавычках ^%
reg add HKCR\Unknown\shell\openas\command /ve /t REG_EXPAND_SZ /d "^%SystemRoot^%\system32\rundll32.exe %SystemRoot%\system32\shell32.dll,OpenAs_RunDLL %1" /fДостаточно одной птички чтоб это не читалось переменной, но оно также пишется и в реестр.

Как записать ?
%SystemRoot%\system32\rundll32.exe %SystemRoot%\system32\shell32.dll,OpenAs_RunDLL %1
---
В общем получилось так
reg add HKCR\Unknown\shell\openas\command /ve /t REG_EXPAND_SZ /d ^%SystemRoot^%\system32\rundll32.exe" "^%SystemRoot^%\system32\shell32.dll,OpenAs_RunDLL" "%1 /f
убрал значение из кавычек, а в кавычки поставил пробел

Petya V4sechkin
06-09-2018, 14:31
Как записать ?
reg add HKCR\Unknown\shell\openas\command /ve /t REG_EXPAND_SZ /d "%%SystemRoot%%\system32\rundll32.exe %%SystemRoot%%\system32\shell32.dll,OpenAs_RunDLL %%1" /f

LEmiD
06-09-2018, 16:18
Логика как обычно гдето заблудилась.
Мой последний вариант из cmd
reg add HKCR\Unknown\shell\openas\command /ve /t REG_EXPAND_SZ /d ^%SystemRoot^%\system32\rundll32.exe" "^%SystemRoot^%\system32\shell32.dll,OpenAs_RunDLL" "%1 /fполучаю что надо, но если запускаю из батника, получаю полное отсутствие переменных
\system32\rundll32.exe \system32\shell32.dll,OpenAs_RunDLLБеру ваш код
reg add HKCR\Unknown\shell\openas\command /ve /t REG_EXPAND_SZ /d "%%SystemRoot%%\system32\rundll32.exe %%SystemRoot%%\system32\shell32.dll,OpenAs_RunDLL %%1" /fзапускаю в командной строке и просто получаю лишние проценты
%C:\Windows%\system32\rundll32.exe %C:\Windows%\system32\shell32.dll,OpenAs_RunDLL %%1запускаю из батника и получаю что надо
%SystemRoot%\system32\rundll32.exe %SystemRoot%\system32\shell32.dll,OpenAs_RunDLL %1То есть батник из комадной строки запускать нельзя, а только из проводника.

Какие есть решения определить откуда запущен батник ?

Iska
06-09-2018, 16:50
запускаю в командной строке и просто получаю лишние проценты »
Всё правильно. Так и должно быть при запуске непосредственно из-под командной строки.

Какие есть решения определить откуда запущен батник ? »
Это как? Поясните.

LEmiD
06-09-2018, 17:24
В общем ватнику всё равно откуда он запущен.
Просто тестировал команды по одной.
Оказалось что надо тестировать в батнике

Iska
06-09-2018, 17:27
LEmiD, иногда для понимания происходящего внутри пакетного файла помогает временное комментирование типичной первой строки @echo off.

juk_777
07-12-2020, 10:18
Здравствуйте, уважаемые! А подскажите, пожалуйста, как с помощью CMD/BAT просто открыть нужную ветвь реестра? Ну что б без " Пуск" - Выполнить - regedit и далее..."

Vadikan
07-12-2020, 10:25
reg query /?




© OSzone.net 2001-2012