【发布时间】:2012-05-30 13:39:39
【问题描述】:
我一直在尝试创建一个非常简单的 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强>”。
有人知道保持环境变量不变、运行批处理文件的技巧吗?
谢谢。
【问题讨论】:
标签: batch-file escaping registry environment-variables command-prompt