gpt4 book ai didi

windows - Windows 7 中丢弃的 CALL 批处理文件环境变量

转载 作者:可可西里 更新时间:2023-11-01 13:56:39 25 4
gpt4 key购买 nike

我已经成功地使用 CALL 机制允许一个批处理文件调用另一个来设置环境变量。这段代码在 Windows XP 上运行了一年多。

但是,它在 Windows 7 上的工作方式似乎不同。变量存在于第二个批处理文件中,就在 EXIT/B 语句之前。但是,返回到第一个批处理文件时它们不存在。

一些简单的示例似乎按预期工作,但大型批处理脚本却没有。

有没有人对此有困难或知道任何解决方法?

最佳答案

在多年的高级批处理脚本编写中,我从未见过 CALL 无法保留环境变量,除非被调用的脚本(或标签)在 SETLOCAL 仍处于事件状态时设置变量。在 CALL 终止时,CALL 中的每个事件 SETLOCAL 都有一个隐式的 ENDLOCAL。

听起来您在 EXIT/B 之前输入了诊断消息以确认您的变量已定义。我会更进一步,在您的诊断消息之前添加多个 ENDLOCAL 语句。我怀疑您会在 EXIT/B 之前看到您的值(value)观消失。您可以根据需要添加任意数量的 ENDLOCAL。 ENDLOCAL 永远不会影响在 CALL 之前发生的 SETLOCAL。

最可能的解释是您的脚本以某种方式从 XP 更改为 Win 7,或者您的 Win 7 环境中发生了一些上下文更改,正在执行以前未公开的代码的某些方面。

关于windows - Windows 7 中丢弃的 CALL 批处理文件环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24021095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com