gpt4 book ai didi

windows - 为什么名称中带有数字的 env 变量从批处理文件中被错误解释?

转载 作者:可可西里 更新时间:2023-11-01 09:55:02 24 4
gpt4 key购买 nike

我们有一台 Windows Server 2008 R2 机器,该机器有一个目录,其中包含我们开发团队使用的所有第三方库。我设置了一个名为 3P_Libs 的系统范围环境变量。在 cmd 提示符下我可以看到正确的值:

D:\_AMG_Integration_\_NightlyBuild_>echo %3P_Libs%
D:\_third_party_libraries_

我有一个夜间构建脚本,在构建时引用此路径,但它会抛出错误,因为“3”被删除,只留下 P_Libs 的值,而不是正确的路径。我添加了脚本值的回显:

D:\_AMG_Integration_\_NightlyBuild_>echo P_Libs
P_Libs

尽管没有向脚本提供任何输入,但批处理文件似乎将 %3 自己解释为第三个输入变量。是否需要做些什么来逃避“3”?

最佳答案

正如 Raymond Chen 指出的那样,原因是脚本将 %3 作为传递给它的第三个参数。目前我想到的解决此问题的唯一方法是使用延迟扩展或 for/f:

setlocal enableDelayedExpansion
echo !3P_Libs!
endlocal

对于/f:

for /f "tokens=2* delims==" %%a in ('set 3P_Libs') do echo %%a

关于windows - 为什么名称中带有数字的 env 变量从批处理文件中被错误解释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20482201/

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