[英]Dynamic variable syntax with delayed expansion
為了重用代碼,我試圖使用動態變量來測試條件,但無法獲得所需的結果。 我正在使用延遲擴展。
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的值)
我已經弄亂了轉義字符,但是無法正常工作。 救命!
if !SUB_TRANSTYPE!==H (
CALL echo sub_transtype_header is %%!SUB_TRANSTYPE!_HEADER%%
)
請注意,您有=
從丟失的==
操作符。
這將在子外殼中執行echo
。
要解釋if
語句中的值,請使用
call set "someothervariable=%%!SUB_TRANSTYPE!_HEADER%%"
if "!someothervariable!"=="value" (
第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!
在此答案中對這種類型的管理進行了詳細描述。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.