使用REG ADD将%~DP0写入注册表

5

我解决了一个有关在REG_SZ注册表值中插入% DATE%的问题(请参见链接),但现在我正在尝试使用.BAT脚本中的REG ADD将%~DP0(长源路径)插入到注册表值中时遇到了略微不同的问题。 它无法完成操作,我确信这是因为我做错了什么。

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

我也尝试过先将值设置为变量,但也不起作用。发生的情况是它插入了扩展路径而没有前导双引号,但使用一个尾随的双引号,然后由于REG /?语法出现错误。
SET VX=%~DP0
reg add "hklm\software\acme" /v "TestValue" /d "%VX%" /t REG_SZ /f

有人看到我做错了什么吗?

1个回答

6

路径 %~dp0 以目录分隔符 '\' 结尾(例如 'c:\temp\'),此符号将被解释为转义后面的双引号字符,因此解析器无法看到结束的双引号。需要做的是使用另一个 \ 字符转义尾随的 \ 字符:

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

另一种方法:使用"%~dp0." - aschipfl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接