如何从一个动态的变量在Windows批处理文件中的值 [英] How to get the value from a dynamic variable in windows batch file

查看:83
本文介绍了如何从一个动态的变量在Windows批处理文件中的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用Microsoft Windows XP [版本5.1.2600]

I am using Microsoft Windows XP [Version 5.1.2600]

试图做到这一点。

试图动态地创建变量,然后在循环中读出该变量的值。

Trying to create the variable dynamically and then read the value out of that variable in a loop.

@ECHO off

SET SQL1=TEST
SET SQL2=TEST1
SET SQL3=TEST2
SET SQL=SQL
SETLOCAL ENABLEDELAYEDEXPANSION

SET /A number=0

FOR /l %%A IN (1,1,3) DO (

SET /A number = number + 1
echo !number!
    echo %SQL%!number!

)
endlocal

Output should be 
 1
 test
 2
 test2
 3
 test3
I am getting 
 C:\temp>c.bat
  1
  SQL1
  2
  SQL2
  3
  SQL3

请帮帮忙!

推荐答案

唉。

第一种方式(请注意,不是你的数量变量,它采用了循环计数变量 %% A

First way (note that instead of your number variable, it uses the loop counter variable %%A):

@ECHO off

SET SQL1=TEST
SET SQL2=TEST1
SET SQL3=TEST2

SETLOCAL ENABLEDELAYEDEXPANSION

SET /A number=0

FOR /l %%A IN (1,1,3) DO (

SET /A number = number + 1
echo !number!
echo !SQL%%A!

)
endlocal

方式二(丑陋,但它你想要做什么):

Second way (ugly but it does what you want):

@ECHO off

SET SQL1=TEST
SET SQL2=TEST1
SET SQL3=TEST2

SETLOCAL ENABLEDELAYEDEXPANSION

SET /A number=0

FOR /l %%A IN (1,1,3) DO (

SET /A number = number + 1
echo !number!
for %%i in (!number!) do (echo !SQL%%i!)

)
endlocal

这篇关于如何从一个动态的变量在Windows批处理文件中的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆