我一直试图创建一个非常简单的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 /?
时,它说我必须将"^“放在每个"%”之前,命令行才能工作(如果没有"^",变量将被解释并替换为其绝对值)。
当我在提示符中输入完整命令时,一切正常。在value字段中有"%LocalAppData%\Microsoft\DRM\Templates".当我在批处理文件中复制/粘贴此命令时,运行时没有问题。系统告诉我一切都很好。但实际上,值是"^\Microsoft\DRM\Templates“或"\Microsoft\DRM\Templates".
当我删除完整命令中的"^“并重试时,值为"C:\Users\My ”
有人知道如何保持环境变量的原样,运行批处理文件吗?
谢谢。
发布于 2012-05-30 05:48:01
^被设定为批处理脚本中的转义字符,但我也一直对它有困难。
相反,尝试双倍百分比,用双引号括起来:
^%LocalAppData^%\Microsoft\DRM\Templates
应该是
"%%LocalAppData%%\Microsoft\DRM\Templates"
有关批处理脚本中转义字符的更多信息,请查看http://www.robvanderwoude.com/escapechars.php。
https://stackoverflow.com/questions/10817501
复制相似问题