尝试重用代码我试图使用动态变量来测试条件,但无法得到我需要的结果。我正在使用延迟扩展。
1 Outside the for loop:
2 set "H_HEADER=FALSE"
3 set "SUB_TRANSTYPE=#"
4
5 Inside the for loop:
6 set "SUB_TRANSTYPE=!FULL_LINE:~0,1!"
7 if !SUB_TRANSTYPE!==H (
8 echo sub_transtype_header is !!SUB_TRANSTYPE!_HEADER!
9 )
第6行将SUB_TRANSTYPE设置为H
第8行将H_HEADER打印到控制台但我希望它打印FALSE(H_HEADER的值)
我已经弄乱了转义字符,但无法让它发挥作用。救命啊!
答案 0 :(得分:0)
if !SUB_TRANSTYPE!==H (
CALL echo sub_transtype_header is %%!SUB_TRANSTYPE!_HEADER%%
)
请注意=
运算符中缺少==
。
这将在子shell中执行echo
。
要解释if
语句中的值,请使用
call set "someothervariable=%%!SUB_TRANSTYPE!_HEADER%%"
if "!someothervariable!"=="value" (
答案 1 :(得分:0)
第6行应该是:
set "SUB_TRANSTYPE=!FULL_LINE:~0,1!"
第7行应该是:
if !SUB_TRANSTYPE!==H (
第8行应该是:
for /F %%A in ("!SUB_TRANSTYPE!") do echo sub_transtype_header is !%%A_HEADER!
此类管理已在this answer完整描述。