【问题标题】:Windows Command Line: Non Evaluation of Environment VariableWindows 命令行:不评估环境变量
【发布时间】:2010-09-24 07:38:00
【问题描述】:

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

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

BTSTask.exe AddResource -ApplicationName:App1 -类型:System.BizTalk:BizTalkAssembly -覆盖 -来源:..\Schemas\bin\development\App1.Schemas.dll -目标:%BTAD_InstallDir%\App1.Schemas.dll

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

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

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

[EDIT] 当我在命令提示符下执行它时,它不会替换环境变量,但是当我将它作为脚本运行时它会替换,关于为什么这不同的任何想法?

【问题讨论】:

    标签: windows command-line biztalk environment-variables


    【解决方案1】:

    在它打印的命令提示符中尝试 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

    【讨论】:

    • 相当奇怪的是,即使我不转义百分比,当我直接在命令行中键入它时,它也有效,但当我从 .cmd 脚本运行它时则无效。有什么想法吗?
    【解决方案2】:

    你试过了吗:

    %%BTAD_InstallDir%%
    

    在你的脚本中?

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

    【讨论】:

    • 太棒了,这很好用。这是否有效,因为它无法将 %BTAD_InstallDir% 解析为变量,因此将其保留为原始值?
    • %% 是不解释 % 的批处理方式。用于变量(如在 '%%a 而不是 %a' 中),因为在批处理中 %1、%2、%3 具有特殊含义。
    【解决方案3】:

    尝试 ^% 而不是 %。

    【讨论】:

    • 感谢您的回答 Mikeage,不幸的是,这仍然会评估环境变量。也许我应该编辑我的问题以提及我已经尝试过的方法。
    【解决方案4】:

    试过了:

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

    得到:

    %JAVA_HOME%
    

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

    [EDIT 2] 作为记录:我使用 UnxUtils 的 echo 来获得普通程序的行为。内置 echo 的行为略有不同,至少对于带引号的 % 符号而言。

    【讨论】:

      【解决方案5】:

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

      【讨论】:

        猜你喜欢
        • 2011-07-04
        • 1970-01-01
        • 1970-01-01
        • 2020-11-17
        • 1970-01-01
        • 2021-08-28
        • 1970-01-01
        • 1970-01-01
        • 2016-08-27
        相关资源
        最近更新 更多