我成功地使用了 CALL 机制允许一个批处理文件调用另一个批处理来设置环境变量。这段代码在 Windows XP 上运行良好一年有余。
然而,在 Windows 7 上似乎没有以相同的方式工作。这些变量存在于第二个批处理文件中,就在 EXIT /B 语句之前。但是,在返回到第一个批处理文件时,它们不存在。
一些简单的示例似乎按预期工作,但是大型批处理脚本并不如此。
有人遇到过这个问题或知道任何解决方法吗?
然而,在 Windows 7 上似乎没有以相同的方式工作。这些变量存在于第二个批处理文件中,就在 EXIT /B 语句之前。但是,在返回到第一个批处理文件时,它们不存在。
一些简单的示例似乎按预期工作,但是大型批处理脚本并不如此。
有人遇到过这个问题或知道任何解决方法吗?
setlocal
命令。 - AaciniSETLOCAL
命令。我使用ENDLOCAL
来确保在本地范围结束后设置本地变量。 - litSETLOCAL
以便使用ENABLEDELAYEDEXPANSION
。 - litpause
,然后仔细检查只有一个cmd.exe
实例正在运行。哦,你可以尝试将exit /b
更改为goto :eof
- 这可能不太可能,但也无妨。 :-) - Harry Johnston