解析Windows BAT脚本中的环境变量

时间:2017-03-07 19:07:46

标签: windows batch-file environment-variables

我正在尝试为Nuke创建一个简单的应用程序启动器,它通过评估环境变量将路径放在一起。变量的值以两种方式使用。首先,它按原样使用。第二次我需要拆分变量并使用前半部分。

为系统设置的env变量:

  

NUKE_VERSION = 10.0v5

应用程序的路径:

  

C:\ Program Files \ Nuke10.0v5 \ Nuke10.0.exe

以下代码在cmd提示符下正常工作:

HadishDataBaseEntities database = new HadishDataBaseEntities();
var All = database.SPLogCountInUser(HadishCode.gUserID).ToList();
if(All != null && All.Count > 0)
    lbl_Log.Content = All[0].ToString();

但是当我使用代码运行.bat时,它会返回此错误:

  

NUKE_VERSIONi此时出乎意料。

对正在发生的事情的任何见解?我可以在python中做到这一点,但这个简单的东西我不应该这样做,对吧?非常感谢提前。

1 个答案:

答案 0 :(得分:0)

在CMD窗口中,FOR-LOOP使用您在问题中列出的单个%符号。

在批处理文件中,FOR-LOOP使用双%%符号。

FOR / F“delims = v tokens = 1”%% i IN(“%NUKE_VERSION%”)DO set NUKE_MAJOR = %% i