簡體   English   中英

在 for 循環中調用變量 - BATCH

[英]Call variable in for loop - BATCH

我想知道是否有可能或其他方式得到這個:

 @echo off
 setlocal enableDelayedExpansion
 SET loopcount=3

 SET variable1=test1
 SET variable2=test2
 SET variable3=test3

 for /l %%x in (1, 1, %loopcount%) do {
      echo %variable%%x%
 }

正如您在 echo 中看到的那樣,我想獲取變量 1 的值,即test1等等……有什么解決方法嗎? 謝謝你。

執行任務的最佳方式是使用延遲擴展。

在您的示例中,您已經啟用它,但沒有使用它。 延遲變量包含在! 字符,而不是%字符。

例子:

@Echo Off
SetLocal EnableExtensions EnableDelayedExpansion
Set "loopcount=3"

Set "variable1=test1"
Set "variable2=test2"
Set "variable3=test3"

For /L %%G In (1,1,%loopcount%) Do (
    Echo(!variable%%G!
)

但是,您應該盡可能只在需要時啟用延遲擴展:

@Echo Off
SetLocal EnableExtensions DisableDelayedExpansion
Set "loopcount=3"

Set "variable1=test1"
Set "variable2=test2"
Set "variable3=test3"

For /L %%G In (1,1,%loopcount%) Do (
    SetLocal EnableDelayedExpansion
    Echo(!variable%%G!
    EndLocal
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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