@echo off&setlocal enabledelayedexpansion
set NameA=true
set NameB=false
set NameC=true
set NameD=true
SET TASK_1_PROJECT_NAME=NameA
SET TASK_2_PROJECT_NAME=NameB
SET TASK_3_PROJECT_NAME=NameC
SET TASK_4_PROJECT_NAME=NameD
for /l %%i in (1, 1, 4) do (
set TempName=!TASK_%%i_PROJECT_NAME!
if !TempName!==true (
echo 'selected'
) else (
echo 'not be selected'
)
)
SET TASK_1_PROJECT_NAME=%NameA%
SET TASK_2_PROJECT_NAME=%NameB%
SET TASK_3_PROJECT_NAME=%NameC%
SET TASK_4_PROJECT_NAME=%NameD%
批处理变量应该这样赋值给另一个变量。
###### 问题遇到的现象和发生背景
echo 输出结果不对,没有正解引用bool型变量
###### 用代码块功能插入代码,请勿粘贴截图
@echo off&setlocal enabledelayedexpansion
set NameA=true
set NameB=false
set NameC=true
set NameD=true
SET TASK_1_PROJECT_NAME=NameA
SET TASK_2_PROJECT_NAME=NameB
SET TASK_3_PROJECT_NAME=NameC
SET TASK_4_PROJECT_NAME=NameD
for /l %%i in (1, 1, 4) do (
set TempName=!TASK_%%i_PROJECT_NAME!
if !TempName!==true (
echo 'selected'
) else (
echo 'not be selected'
)
)
###### 运行结果及报错内容
'not be selected'
'not be selected'
'not be selected'
'not be selected'
###### 我的解答思路和尝试过的方法
!!TempName!! : 结果不对
%!TempName!%: 结果不对
!%TempName%!: 结果不对
###### 我想要达到的结果
'selected'
'not be selected'
'selected'
'selected'