Como acrescentar um valor de chave de registro que tenha espaços nele?

1

Eu encontrei a seguinte página ( Como eu modifico os dados de um nome de valor de chave de registro existente de cmd? ) e isso era extremamente útil, mas eu tenho uma pergunta adicional.

Meu PATH tem um valor que inclui "c: \ Arquivos de Programas \ Microsoft SQL Server \ 100 \ Ferramentas \ Binn \" e gostaria de adicionar "P: \ SQL" a ele. Quando eu executo o script abaixo, meu PATH será parecido com "C: \ Program; P: \ SQL". O que precisa ser modificado para que meu PATH se pareça com "c: \ Arquivos de Programas \ Microsoft SQL Server \ 100 \ Ferramentas \ Binn \; P: \ SQL"?

Aqui está o que eu tenho:

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

Obrigado.

    
por Nick H 27.06.2016 / 19:38

2 respostas

1

Como adiciono um valor ao meu PATH ?

My PATH has a value that includes "c:\Program Files\Microsoft SQL Server0\Tools\Binn\", and I'd like to add "P:\SQL" to it

Por que você está lendo / escrevendo o registro?

Use apenas setx para adicionar um valor ao seu PATH :

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

Nota:

  • /m Defina a variável no ambiente do sistema HKLM .

    (O padrão é o ambiente local HKCU )

Leitura Adicional

por 27.06.2016 / 20:13
0

Se você realmente quiser adulterar o registro, faça o seguinte, mas a seu próprio risco

@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

Devo dizer que esta é uma maneira muito bruta de fazer isso. Lembre-se sempre de fazer um backup do registro antes de alterá-lo .

    
por 27.06.2016 / 21:41