变量 – Windows批处理文件:什么是变量扩展,EnableDelayedExpan
发布时间:2021-01-10 20:42:08 所属栏目:系统 来源:网络整理
导读:什么是“变量扩张”?这仅仅意味着“变量定义”还是其他什么? 当我说setLocal EnableDelayedExpansion时会发生什么?谷歌不清楚. 解决方法 变量扩展意味着替换%或中包含的变量!以它的价值. 在执行一行之前,%normal%扩展只发生一次.这意味着%变量%扩展
什么是“变量扩张”?这仅仅意味着“变量定义”还是其他什么? 当我说setLocal EnableDelayedExpansion时会发生什么?谷歌不清楚. 解决方法>变量扩展意味着替换%或中包含的变量!以它的价值.>在执行一行之前,%normal%扩展只发生一次.这意味着%变量%扩展具有相同的值无关紧要,如果该行被执行多次(如在for命令中). >!延迟了!每次执行该行时都会执行扩展. 看这个例子: @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" 正常扩张不一定是劣势,但取决于它所使用的具体情况.例如,在任何其他编程语言中,要交换两个变量的值,您需要第三个的帮助,但在批处理中,它可以只在一行中完成: set "var1=%var2%" & set "var2=%var1%" (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |