REG ADD Ignora / f

3

Meu script:

@ECHO OFF

SET RegPath="HKEY_CURRENT_USER\Software\Microsoft\VBA.0\"

REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit" /v LastKey /t REG_SZ /d "%RegPath%" /f

START RegEdit

Apesar da inclusão de /f , sempre sou solicitado a substituir a entrada. Como posso obter o comando REG ADD para não solicitar e apenas substituir a entrada?

    
por Kevin Jones 11.04.2017 / 21:16

1 resposta

4

Se você executar como está, verá que o valor adicionado ao registro é, na verdade, HKEY_CURRENT_USER\Software\Microsoft\VBA.0" /f - incluindo aspas órfãs e /f que foi planejado como um argumento separado.

O problema aqui é que você está adicionando muitas citações por meio da própria variável, sem mencionar a chamada para a variável, e como tal está confundindo Reg sobre onde os argumentos começam e terminam.

Remova todas as aspas estranhas e funcione conforme pretendido:

@ECHO OFF

SET RegPath=HKEY_CURRENT_USER\Software\Microsoft\VBA.0\

REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit" /v LastKey /t REG_SZ /d %RegPath% /f

START RegEdit
    
por 11.04.2017 / 22:02