批处理文件 - 变量中的变量

时间:2014-08-17 04:14:00

标签: batch-file

我使用了for循环来按空格分割字符串。我还使用了一个循环来使每个单词都在自己的变量中,例如var1 = this,var2 = is,var3 = a,var4 = test。这看起来像“set var!count!= %% A”

有效。我只需要记住它。我怎么做?从逻辑上讲,我认为它看起来像这样: %VAR%计%%

有人可以向我解释如何获得吗?如果我有'计数'1,我该怎么办才能获得“var1”?

4 个答案:

答案 0 :(得分:2)

有一种简单的方法,您需要启用延迟扩展,首先放置setlocal enabledelayedexpansion,然后使用感叹号访问这些变量。您的脚本应如下所示:

@echo off
setlocal enabledelayedexpansion
:: Here comes your loops to set the variables
echo/!var%count%!

答案 1 :(得分:0)

批量浏览数组时,只需使用for /l

@echo off
setlocal enabledelayedexpansion
var0 = A
var1 = B
var2 = C
var3 = D
var4 = E

for /l %%a in (0, 1, 4) do (
Echo var%%a = !var%%a!
)

输出:

var0 = A
var1 = B
var2 = C
var3 = D
var4 = E

答案 2 :(得分:0)

我不明白您为什么需要这样做。您正在寻找的似乎是一个数组变量。您可以使用以下方法解决问题:

set variable=this;is;a;test
for %%a in (%variable%) do (echo %%a)

对于每个值,您都需要用“;”分隔 此代码的输出将是:

this
is
a
test

答案 3 :(得分:-1)

如果要在for语句之外打印出var1的内容,请使用

  Echo %var1%

要首先在块内打印出var1的内容,需要启用延迟扩展,而不是用百分号括起变量引用,使用

   Echo !var1!