Carina |
25-07-2006 11:22 464627 |
Как добавлять новые значения в реестр Windows, не удаляя старые
К вопросу автоматической установки чего-либо...
Есть задача - автоматически (reg-файлом или иначе) добавить в ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\PATH (там записаны системные переменные путей) новые значения, сохранив при этом старые, т.е. дописать. Возможно, для кого-то ответ очевиден, но я что-то туплю ...-)
СПАСИБО
|
ANDYru |
25-07-2006 13:14 464660 |
действительно элементарно - сохрани нужную готовую ветку и отредактируй оставив то что нужно дописать и всё
|
Sanja Alone |
26-07-2006 04:38 464921 |
Carina
Цитата:
добавить в ветку новые значения, сохранив при этом старые, т.е. дописать
|
В кач-ве примера приведу два способа добавления пути в Path: - Способ 1: AutoIt-скрипт
Код:
;какой путь нужно дописать в переменную Path
$addtopath="%ProgramFiles%\7-Zip"
;извлечение текущего содержимого переменной Path
$curpath=RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment","Path")
;если дописываемого пути нет в переменной Path, то дополняем ее
If Not StringInStr ($curpath,$addtopath) and Not StringInStr ($curpath,@ProgramFilesDir&"\7-Zip") Then
RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment","Path","REG_EXPAND_SZ",$curpath & ";" & $addtopath)
EndIf
- Способ 2: пакетный (bat, cmd) файл
Код:
@echo off
rem какой путь нужно дописать в переменную Path
set addtopath=%ProgramFiles%\7-Zip
rem извлечение текущего содержимого переменной Path
rem !ВАЖНО! - в кач-ве разделителя нужно указать только символ табуляции
rem (ASCII-код символа после знака "равно" в выделенном фрагменте должен быть 09)
for /F "tokens=3 delims= " %%j in ('reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path') do (set curpath=%%j)
rem проверка наличия дописываемого значения в переменной Path (для избежания дублирования)
for /F %%j in ('echo %curpath% ^| find /C /I "%addtopath%"') do (set isinpath=%%j)
rem если дописываемого пути нет в переменной Path, то дополняем ее
if %isinpath% == 0 (
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_EXPAND_SZ /d "%curpath%;%addtopath%" /f
)
|
Vadikan |
26-07-2006 06:08 464925 |
Carina
Впредь прошу не плодить одинаковых тем в разных форумах - это нарушает правила конференции. Спасибо.
|
Время: 12:09.
© OSzone.net 2001-