gpt4 book ai didi

variables - Windows批处理文件: what is variable expansion,和EnableDelayedExpansion是什么意思?

转载 作者:行者123 更新时间:2023-12-03 06:24:06 33 4
gpt4 key购买 nike

“变量扩展”是什么意思?它的意思只是“变量定义”,还是其他什么意思?

当我说setLocal EnableDelayedExpansion时会发生什么? Google 并不清楚。

最佳答案

  • 变量扩展表示将%!中包含的变量替换为其值。
  • %normal% 扩展仅发生一次执行一行之前。这意味着 %variable% 扩展具有相同的值,无论该行是否执行多次(例如在 for 命令中)。
  • 每次执行该行时都会执行 !delayed! 扩展。

请参阅此示例:

@echo off
setlocal EnableDelayedExpansion
set "var=Original"
set "var=New" & echo Normal: "%var%", Delayed: "!var!"

输出:

Normal: "Original", Delayed: "New"

另一个:

@echo off
setlocal EnableDelayedExpansion
set "var1=Normal"
set "var2=Delayed"
for /L %%i in (1,1,10) do (
set "var1=%var1% %%i"
set "var2=!var2! %%i"
)
echo Normal: "%var1%"
echo Delayed: "%var2%"

输出:

Normal:  "Normal 10"
Delayed: "Delayed 1 2 3 4 5 6 7 8 9 10"

普通扩展并不一定是缺点,而是要看它使用的具体情况。例如,在任何其他编程语言中,要交换两个变量的值,您需要第三个变量的帮助,但在 Batch 中只需一行即可完成:

set "var1=%var2%" & set "var2=%var1%"

关于variables - Windows批处理文件: what is variable expansion,和EnableDelayedExpansion是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25324354/

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