0

我一直在试图建立一个非常简单的Windows脚本几乎作品(“差不多”这里解释了我的存在......)。我想链接几个命令。其中之一是添加注册表项。 我发现怎么做的伎俩用下面的命令:相同的命令,不同的结果(命令行或批处理)

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

我想添加一个名为key“AdminTemplatePath”,它的值为“%LOCALAPPDATA%\微软\ DRM \模板 ”。

问题是关于环境变量%LOCALAPPDATA%。当我做REG ADD /?,它说我有每个“”在命令行工作前把“^”(没有“^”,变量会被解释和它的绝对值代替) 。

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

当我删除了 “^” 在完整的命令,然后再试一次,值为 “C:\用户\我的用户\应用程序数据\本地\微软\ DRM \模板”。

有没有人知道保持环境变量的原理,运行批处理文件?

谢谢。

回答

1

^被认为是批处理脚本中的转义字符,但我也一直有它的麻烦。

相反,尝试双比例,双引号括起来:

^%LocalAppData^%\Microsoft\DRM\Templates 

应该

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

退房http://www.robvanderwoude.com/escapechars.php有关转义字符的更多信息批处理脚本

+0

谢谢。问题解决了。也感谢资源网站:) – Jon