在Windows BAT脚本中分析环境变量

在Windows BAT脚本中分析环境变量,windows,batch-file,environment-variables,Windows,Batch File,Environment Variables,我试图为软件Nuke创建一个简单的应用程序启动器,通过计算环境变量将路径组合在一起。变量的值有两种使用方式。首先,它是按原样使用的。第二次我需要拆分变量并使用前一半 为系统设置的环境变量: NUKE_版本=10.0v5 应用程序的路径: C:\ProgramFiles\Nuke10.0v5\Nuke10.0.exe 下面的代码在cmd提示符下运行良好: FOR /F "delims=v tokens=1" %i IN ("%NUKE_VERSION%") DO set NUKE_MAJOR=%i

我试图为软件Nuke创建一个简单的应用程序启动器,通过计算环境变量将路径组合在一起。变量的值有两种使用方式。首先,它是按原样使用的。第二次我需要拆分变量并使用前一半

为系统设置的环境变量:

NUKE_版本=10.0v5

应用程序的路径:

C:\ProgramFiles\Nuke10.0v5\Nuke10.0.exe

下面的代码在cmd提示符下运行良好:

FOR /F "delims=v tokens=1" %i IN ("%NUKE_VERSION%") DO set NUKE_MAJOR=%i
"C:\Program Files\Nuke%NUKE_VERSION%\Nuke%NUKE_MAJOR%.exe"
但当我用代码运行.bat时,它返回以下错误:

在这个时候,维西奥尼核电站是出人意料的


对正在发生的事情有什么见解吗?我可以用python来做,但是这么简单的事情我不必做,对吧?非常感谢。

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

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


对于/F“delims=v tokens=1”%%i IN(“%NUKE_VERSION%”)是否设置NUKE_MAJOR=%%i

您的bat文件是什么样子的?当您运行bat文件时,它通常会启动自己的命令环境,该环境可能会事先声明变量,也可能不会声明变量,因此,在批处理文件中,有几个因素可能会导致此错误。可替换参数的
百分比符号必须加倍。通过
%%i
更改所有
%i
如果您阅读了
for
命令的帮助,则第行显示:要在批处理程序中使用for命令,请指定%%variable而不是%variable。