簡體   English   中英

具有延遲擴展的動態變量語法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM