gpt4 book ai didi

function - 批处理 - 如何从批处理文件中返回一个值?

转载 作者:行者123 更新时间:2023-12-04 02:09:07 31 4
gpt4 key购买 nike

我知道如何从同一个批处理文件中的函数返回值,但我发现从不同的批处理文件返回值时存在一些问题。下面是一个例子:

文件 1.cmd

SETLOCAL ENABLEEXTENSIONS
SETLOCAL ENABLEDELAYEDEXPANSION

set number=1
call 2.cmd

echo. %number%

ENDLOCAL
exit /B

文件 2.cmd
SETLOCAL ENABLEEXTENSIONS
SETLOCAL ENABLEDELAYEDEXPANSION

ENDLOCAL & set number=2
exit /B

而且输出还是1,有什么解决办法吗?

最佳答案

LittleBobbyTables 走在正确的轨道上。

您使用两个 SETLOCAL 但只有 1 个 ENDLOCAL 会导致设置变量,但随后定义丢失,因为当批处理在 EXIT/B 处退出时有一个额外的隐式 ENDLOCAL。每当批处理或功能终止时,所有 SETLOCAL 都会结束。在设置值之前,您的代码只需要一个额外的 ENDLOCAL。

SETLOCAL ENABLEEXTENSIONS
SETLOCAL ENABLEDELAYEDEXPANSION

ENDLOCAL & ENDLOCAL & set number=2
exit /B

但是很少需要 enableExtensions,因为默认情况下扩展总是启用的。您应该能够删除 SETLOCAL ENABLEEXTENSIONS 并使用单个 ENDLOCAL。

如果由于某种原因你确实需要启用扩展,那么你可以在一个 SETLOCAL 上使用这两个选项,但仍然只需要一个 ENDLOCAL
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION

ENDLOCAL & set number=2
exit /b

关于function - 批处理 - 如何从批处理文件中返回一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12018328/

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