我正在编辑给我的批处理文件,但我不确定以下代码行的作用:
设置 allKeys=%allKeys% !currentKey!
谢谢!
It appends the run-time value of the variable currentkey after a space to the parse-time value of allkeys and assigns the result as the run-time value of allkeys - provided delayedexpansion is invoked. If delayedexpansion is not invoked, it appends the string !currentKey!, not the value of the variable currentkey.
Without any context information, we're guessing beyond that...
这是一个尝试的代码示例。
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% !currentKey!
为此并运行它以查看差异。
set allKeys=!allKeys! !currentKey!
有关什么是延迟扩展的说明,请键入SET /?.