0

我一直在尝试创建一个非常简单的几乎可以工作的 Windows 脚本(“几乎”解释了我在这里的存在......)。我想链接几个命令。其中之一是用于添加注册表项。我已经找到了如何使用以下命令来解决这个问题:

REG ADD "HKCU\Software\Microsoft\Office\12.0\Common\DRM" /v "AdminTemplatePath" /t REG_EXPAND_SZ /d ^%LocalAppData^%\Microsoft\DRM\Templates /f

我想添加一个名为“ AdminTemplatePath ”的键,其值为“ %LocalAppData%\Microsoft\DRM\Templates ”。

问题是关于环境变量%LocalAppData%。当我执行 时REG ADD /?,它说我必须在每个“ % ”之前加上“ ^ ”才能使命令行工作(没有“ ^ ”,变量将被解释并被其绝对值替换)。

当我在提示符中键入完整命令时,一切正常。我在值字段“ %LocalAppData%\Microsoft\DRM\Templates ”。当我将此命令复制/粘贴到我的批处理文件中时,运行时没有问题。系统告诉我一切都很好。但实际上,该值是“ ^\Microsoft\DRM\Templates ”或“ \Microsoft\DRM\Templates ”。

当我删除完整命令中的“ ^ ”并重试时,值为“ C:\Users\My User\AppData\Local\Microsoft\DRM\Templates ”。

有谁知道保持环境变量不变的诀窍,运行批处理文件?

谢谢你。

4

1 回答 1

1

^ 应该是批处理脚本中的转义字符,但我也一直遇到麻烦。

相反,请尝试使用双引号括起来的双倍百分比:

^%LocalAppData^%\Microsoft\DRM\Templates

应该

"%%LocalAppData%%\Microsoft\DRM\Templates"

查看http://www.robvanderwoude.com/escapechars.php以获取有关批处理脚本中转义字符的更多信息

于 2012-05-30T13:48:01.787 回答