Batch file 带有数组循环[%x%]的批处理concat变量
“如果定义”部分工作正常。但“如果存在”部分没有。 看起来变量x是个问题。我怎样才能解决这个问题 输出: 缺少“C:\Program Files(x86)\Embarcadero\Studio\20.0\x”Batch file 带有数组循环[%x%]的批处理concat变量,batch-file,Batch File,“如果定义”部分工作正常。但“如果存在”部分没有。 看起来变量x是个问题。我怎样才能解决这个问题 输出: 缺少“C:\Program Files(x86)\Embarcadero\Studio\20.0\x” 不能以这种方式嵌套变量。 尝试延迟扩展(未测试): 使用for循环(也未测试)迭代数组会更好,更具可读性: 有关和的详细信息不能以这种方式嵌套变量。 尝试延迟扩展(未测试): 使用for循环(也未测试)迭代数组会更好,更具可读性: 有关和的详细信息在向“修补列表”添加项目时,我不想编辑fo
不能以这种方式嵌套变量。 尝试延迟扩展(未测试): 使用for循环(也未测试)迭代数组会更好,更具可读性:
有关和的详细信息不能以这种方式嵌套变量。 尝试延迟扩展(未测试): 使用for循环(也未测试)迭代数组会更好,更具可读性:
有关和的详细信息在向“修补列表”添加项目时,我不想编辑for循环,这就是我不使用for循环语句的原因。但其余的都很好。谢谢大家!@int3g3r-感谢您的更新。如果这样做有效,您也可以接受答案,以便下一个检查此问题的用户更方便。我不想在向“修补列表”添加项目时编辑for循环,这就是我不使用for循环语句的原因。但其余的都很好。谢谢大家!@int3g3r-感谢您的更新。如果这样做有效,您也可以接受答案,以便下一个检查此问题的用户更容易找到答案。
@echo off
set "RADmainDir=C:\Program Files (x86)\Embarcadero\Studio\20.0\"
set "patchList[0]=bin\dsymlink.exe"
set "patchList[1]=bin\themeloader260.bpl"
set "x=0"
:SymLoop
if defined patchList[%x%] (
IF EXIST "%RADmainDir%%patchList[%x%]%" (
echo:OK
) ELSE (
echo:MISSING
)
set /a "x+=1"
GOTO :SymLoop
)
@echo off
set "RADmainDir=C:\Program Files (x86)\Embarcadero\Studio\20.0\"
set "patchList[0]=bin\dsymlink.exe"
set "patchList[1]=bin\themeloader260.bpl"
setlocal enableDelayedExpansion
set "x=0"
:SymLoop
if defined patchList[%x%] (
IF EXIST "!RADmainDir!!patchList[%x%]!" (
echo:OK
) ELSE (
echo:MISSING
)
set /a "x+=1"
GOTO :SymLoop
)
@echo off
set "RADmainDir=C:\Program Files (x86)\Embarcadero\Studio\20.0\"
set "patchList[0]=bin\dsymlink.exe"
set "patchList[1]=bin\themeloader260.bpl"
setlocal enableDelayedExpansion
for /l %%l in (0-start;1-step;1-end) do (
if exist "!RADmainDir!!patchList[%%l]!" (
echo exists
) else (
echo does not exists
)
)