Batch file 批处理文件启用DelayedExpansion和变量设置
我正在编辑给我的批处理文件,我不确定以下代码行的作用: 设置所有键=%allKeys%!钥匙Batch file 批处理文件启用DelayedExpansion和变量设置,batch-file,Batch File,我正在编辑给我的批处理文件,我不确定以下代码行的作用: 设置所有键=%allKeys%!钥匙 谢谢 它将变量currentkey的运行时值附加在allkeys的解析时值后一个空格,并将结果指定为allkeys的运行时值-只要调用了delayedexpansion。如果未调用delayedexpansion,它将追加字符串!钥匙,而不是变量currentkey的值 在没有任何上下文信息的情况下,我们只能猜测更多…下面是一个代码示例 allkeys设置在for in do循环之外 在for-in-d
谢谢 它将变量
currentkey
的运行时值附加在allkeys
的解析时值后一个空格,并将结果指定为allkeys
的运行时值-只要调用了delayedexpansion
。如果未调用delayedexpansion
,它将追加字符串!钥匙
,而不是变量currentkey
的值
在没有任何上下文信息的情况下,我们只能猜测更多…下面是一个代码示例 allkeys设置在for in do循环之外 在for-in-do循环中,它已更改,但由于它使用%allkeys%,因此更改不是累积的
@echo off
setlocal enabledelayedexpansion
set allkeys=one
for %%a in (two three four five six) do (
set currentkey=%%a
set allKeys=%allKeys% !currentKey!
echo allkeys is now "!allkeys!"
)
echo allkeys is now "%allkeys%" outside the loop
pause
换行
set allKeys=%allKeys%!钥匙代码>
然后运行它以查看差异
set allKeys=!allKeys! !currentKey!
有关延迟扩展的说明,请键入SET/?
您确实应该提供更多的代码。如果不知道是否启用了延迟扩展、该行是否是代码块的一部分等,就无法预测它的功能。要猜测其用途,可能需要整个脚本。