【发布时间】:2014-07-24 03:19:52
【问题描述】:
我已经成功地使用 CALL 机制来允许一个批处理文件调用另一个批处理文件来设置环境变量。此代码已在 Windows XP 上运行了一年多。
但是,它在 Windows 7 上的工作方式似乎不同。变量存在于 EXIT /B 语句之前的第二个批处理文件中。但是,返回第一个批处理文件时它们不存在。
一些琐碎的示例似乎可以按预期工作,但大批量脚本却没有。
有没有人遇到过这个问题或知道任何解决方法?
【问题讨论】:
-
确保第二个批处理文件没有
setlocal命令。 -
第二个批处理脚本确实有几个
SETLOCAL命令。我正在使用ENDLOCAL来确保在本地范围结束后设置局部变量。 -
我需要能够在第二个批处理文件中使用
SETLOCAL才能使用ENABLEDELAYEDEXPANSION。 -
听起来像试错调试可能是唯一的方法。撕掉部分代码,直到问题消失,然后缩小确切的触发器。 (特别是,找出删除所有对 SETLOCAL 的调用是否会使问题消失。)
标签: windows batch-file cmd windows-7 environment-variables