怎样在批处理中表达一个包含变量的变量?如下例,
@echooffsetstr=set/anum=1:CONsetstr=%str%asetstr%num%=%str%echostr=%str%str%num%=%str...
@echo off
set str=
set /a num=1
:CON
set str=%str%a
set str%num%=%str%
echo str=%str% str%num%=%str%num%%
rem 这里的 %str%num%% 想表示str%num%的值。
if "%num%"=="3" goto END
set /a num+=1
goto CON
:END
for /l %%i in (1,1,%num%) do echo %%i %str%%i%
rem 这里的 %str%%i% 想表示str%%i的值。
上面的%str%num%% %str%%i% 应该是怎样呢? 展开
set str=
set /a num=1
:CON
set str=%str%a
set str%num%=%str%
echo str=%str% str%num%=%str%num%%
rem 这里的 %str%num%% 想表示str%num%的值。
if "%num%"=="3" goto END
set /a num+=1
goto CON
:END
for /l %%i in (1,1,%num%) do echo %%i %str%%i%
rem 这里的 %str%%i% 想表示str%%i的值。
上面的%str%num%% %str%%i% 应该是怎样呢? 展开
3个回答
展开全部
我想你大概是这个意思,为了你便于理解,尽量保持你原代码内容没做优化。
@echo off
setlocal enabledelayedexpansion
set str=
set /a num=1
:CON
set str=%str%a
set str%num%=%str%
call echo str=%str% str%num%=%%str%num%%%
rem 这里的 %str%num%% 想表示str%num%的值。
if "%num%"=="3" goto END
set /a num+=1
goto CON
:END
for /l %%i in (1,1,%num%) do call echo %%i !str%%i!
rem 这里的 %str%%i% 想表示str%%i的值。
下面是批处理运行的结果
str=a str1=a
str=aa str2=aa
str=aaa str3=aaa
1 a
2 aa
3 aaa
@echo off
setlocal enabledelayedexpansion
set str=
set /a num=1
:CON
set str=%str%a
set str%num%=%str%
call echo str=%str% str%num%=%%str%num%%%
rem 这里的 %str%num%% 想表示str%num%的值。
if "%num%"=="3" goto END
set /a num+=1
goto CON
:END
for /l %%i in (1,1,%num%) do call echo %%i !str%%i!
rem 这里的 %str%%i% 想表示str%%i的值。
下面是批处理运行的结果
str=a str1=a
str=aa str2=aa
str=aaa str3=aaa
1 a
2 aa
3 aaa
展开全部
看着很乱。这样赋值给变量应该是不行的,%是保留的变量封闭符号,不能当普通字符使用。你可以将str%num%赋值给另一个变量,例如
set stra=str%num%
set stra=%str%
set stra=str%num%
set stra=%str%
追问
我是想在一个循环中设置一个数组,像str1 str2 str3....., 然后在另外一个循环中调出来。
追答
那你用二次赋值给另一个变量也可以实现的,或者干脆两个变量分开,用的时候(例如显示)才合并到一起。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼主,想要什么样的代码? 需求说一下,越详细越好。
不是我说,楼主的代码可以直接无视了
不是我说,楼主的代码可以直接无视了
更多追问追答
追问
啊哈,我这里的代码只是举个例子
追答
你想要什么代码?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询