1

Я нашел следующую страницу (Как мне изменить данные существующего значения ключа реестра из cmd?) и это было чрезвычайно полезно, но у меня есть еще один вопрос.

Мой PATH имеет значение, которое включает в себя «c:\Program Files\Microsoft SQL Server\100\Tools\Binn\», и я хотел бы добавить к нему «P:\SQL». Когда я запускаю скрипт ниже, мой PATH будет выглядеть как «C:\Program; P:\SQL». Что нужно изменить, чтобы мой PATH выглядел как «c:\Program Files\Microsoft SQL Server\100\Tools\Binn\; P:\SQL»?

Вот что у меня есть:

for /F "skip=2 tokens=3" %%r in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path') do set oldVal=%%r    
echo previous=%oldVal%    
set newVal=%oldVal%;P:SQL    
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_EXPAND_SZ /d %newVal% /f

Благодарю.

2 ответа2

1

Как мне добавить значение в мой PATH?

У моего PATH есть значение, которое включает в себя "c:\Program Files\Microsoft SQL Server\100\Tools\Binn\" , и я хотел бы добавить к нему "P:\SQL"

Почему вы читаете / пишете реестр?

Просто используйте setx чтобы добавить значение в ваш PATH:

setx PATH "%PATH%;P:\SQL" /m

Замечания:

  • /m Установите переменную в системной среде HKLM .

    (По умолчанию используется локальная среда HKCU)


Дальнейшее чтение


0

Если вы действительно хотите подделать реестр, вы делаете следующее, но на свой страх и риск

@echo off
set new_value=;P:/SQL     ::set the new value here

set key="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
for /F "delims= skip=2" %%r in ('reg query %key% /v "Path"') do set old_value=%%r
set old_value=%old_value:    Path    REG_SZ    =%
set new_value=%old_value%%new_value%
reg add %key% /v "Path" /d "%new_value%" /f

Должен сказать, это довольно грубый способ сделать это. Всегда не забывайте делать резервную копию реестра, прежде чем изменять его.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .