gpt4 book ai didi

windows - 批处理文件中延迟扩展的示例

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

有人可以给我一个例子,说明批处理脚本在有或没有延迟扩展的情况下会有不同的行为吗?是否存在您不想使用延迟扩展的情况?谢谢。

最佳答案

看下面的例子...

示例1:以下代码没有使用延迟扩展,因此for循环中的变量仅扩展一次。这意味着,无论我们使用 set 命令对其执行什么操作,%Count% 在循环的每次迭代中都将始终扩展为 0:

@echo off
set COUNT=0

for %%v in (1 2 3 4) do (
set /A COUNT=%COUNT% + 1
echo Count = %COUNT%
)
pause

所以这个脚本将输出:

Count = 0
Count = 0
Count = 0
Count = 0

这不是这个循环应该如何工作的。

示例 2:另一方面,如果我们使用延迟扩展,我们将得到以下脚本,它将按预期运行。

setlocal ENABLEDELAYEDEXPANSION
set COUNT=0

for %%v in (1 2 3 4) do (
set /A COUNT=!COUNT! + 1
echo Count = !COUNT!
)

pause

并且,正如预期的那样,它将输出:

Count = 1
Count = 2
Count = 3
Count = 4

当您使用 ENABLEDELAYEDEXPANSION 并使用 ! 而不是 % 扩展变量时,该变量每次都会重新扩展,并且一切都按预期进行。

关于windows - 批处理文件中延迟扩展的示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10558316/

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