【发布时间】:2017-03-07 19:07:45
【问题描述】:
我正在尝试为 Nuke 软件创建一个简单的应用程序启动器,它通过评估环境变量将路径放在一起。变量的值有两种使用方式。首先,它按原样使用。第二次我需要拆分变量并使用前半部分。
为系统设置的环境变量:
NUKE_VERSION = 10.0v5
应用路径:
C:\Program Files\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 时,它会返回此错误:
NUKE_VERSIONi 此时出乎意料。
对正在发生的事情有任何见解吗?我可以在 python 中做到这一点,但是我不应该做这么简单的事情,对吧?非常感谢。
【问题讨论】:
-
你的 bat 文件是什么样的?当你运行一个bat文件时,它通常会启动它自己的命令环境,这个环境可能有也可能没有事先声明过的变量,所以,有几个因素可能会导致这个错误
-
在批处理文件中,
for可替换参数的百分号必须加倍。将所有%i更改为%%i -
如果您阅读了
FOR命令的帮助,第八行说:要在批处理程序中使用 FOR 命令,请指定 %%variable 而不是 %variable。
标签: windows batch-file environment-variables