2012-01-12 10 views
5

He resuelto la pregunta que tenía sobre insertar% DATE% en un valor de registro REG_SZ (see link), pero ahora me encuentro con un problema ligeramente diferente al tratar de insertar% ~ DP0 (ruta de origen larga) en un valor de registro usando REG ADD dentro de una secuencia de comandos .BAT. No lo hará, y estoy seguro de que es porque estoy haciendo algo mal.Escribiendo% ~ DP0 en el Registro usando REG ADD

reg add "hklm\software\acme" /v "TestValue" /d "%~dp0" /t REG_SZ /f 

También intenté establecer primero el valor de una variable, pero eso tampoco funciona. Lo que sucede es que inserta la ruta expandida sin la comilla doble precedente, pero con una comilla doble final y luego se bombardea con un error sobre REG /? sintaxis, etc.

SET VX=%~DP0 
reg add "hklm\software\acme" /v "TestValue" /d "%VX%" /t REG_SZ /f 

¿Alguien ve lo que estoy haciendo mal?

Respuesta

5

La ruta% ~ dp0 termina en el carácter separador de directorio '\' (por ejemplo, 'c: \ temp \') que se interpreta como un escape para el siguiente carácter de comillas dobles y el analizador no está viendo el cierre de doble cita. Lo que debe hacer es escapar del carácter \ final con otro:

reg add "hklm\software\acme" /v "TestValue" /d "%~dp0\" /t REG_SZ /f 
Cuestiones relacionadas