Windows命令行:不评估环境变量

时间:2008-11-27 10:33:30

标签: windows command-line biztalk environment-variables

我想将一个环境变量的原始文本提供给命令,而不是评估环境变量。

我需要这个从命令行配置BizTalk,例如:

BTSTask.exe AddResource -ApplicationName:App1 -Type:System.BizTalk:BizTalkAssembly -Overwrite - 来源:.. \架构\ BIN \研发\ App1.Schemas.dll -Destination:%BTAD_InstallDir%\ App1.Schemas.dll

此命令将资源添加到BizTalk应用程序。我希望目标是%BTAD_InstallDir%\ App1.Schemas.dll,但是目前它正在评估环境变量(没有任何东西)和使用\ App1.Schemas.dll。

在解析\执行此命令时是否可以转义或禁用此环境变量的评估?

我尝试用胡萝卜(^)转义第一个和两个百分比字符,但这并没有停止评估。

[编辑] 当我在命令提示符处执行此操作时,它不会替换环境变量,但是当我将其作为脚本运行时,它是否有任何想法为什么这是不同的?

5 个答案:

答案 0 :(得分:4)

在打印的命令提示符中尝试echo ^%path ^%...

  

路径

而不是扩展环境变量,所以我猜以下应该像Mikeage建议的那样适合你。

  

BTSTask.exe AddResource -ApplicationName:App1 -Type:System.BizTalk:BizTalkAssembly -Overwrite -Source:.. \ Schemas \ bin \ development \ App1.Schemas.dll -Destination:^%BTAD_InstallDir ^%\ App1.Schemas的.dll

答案 1 :(得分:3)

你有没有尝试过:

%%BTAD_InstallDir%%

在你的剧本中?

这应该阻止脚本解释变量,它会将%BTAD_InstallDir%传递给程序。

答案 2 :(得分:2)

尝试^%而不是%。

答案 3 :(得分:1)

尝试:

C:\PrgCmdLine\Unix\echo.exe "%"JAVA_HOME"%"

GOT:

%JAVA_HOME%

[编辑]事实上,C:\PrgCmdLine\Unix\echo.exe ^%JAVA_HOME^%也有效,而且更简单......

[编辑2]对于记录:我使用UnxUtils的echo来获得普通程序的行为。内置回声具有略微不同的行为,至少对于引用的%符号。

答案 4 :(得分:0)

不确定是否与我的情况相同,但是我很难使用批处理文件来创建一个脚本,其中包含%temp%变量。 我发现的解决方法: 设置test =%temp; 回声{命令}%test %% >> path_to_my_batch_file; 希望这对某人有帮助:)