请教一个问题,有一个功能一直不知道如何实现.
举例如下:
先设置下面两个变量:
set a=1
set b1=10
然后执行 echo %b%a%% 得到 %b1%
其实我想得到的是 赋予b1的值,即 10
请问大家能否实现呢?- @echo off
- set a=1&set b1=10
- call,echo %%b%a%%%
- pause>nul
复制代码 call 这里实际是对命令行进行重新组织扩展,先扩展%%b%a%%%里面的%a%,使%a%变成a的值1,再用cal来扩展%b1%。
也可以用变量延迟来实现,方法如下:- @echo off
- set /a a=1,b1=10
- Setlocal EnableDelayedExpansion
- echo:!b%a%! ...
- pause
复制代码 call 在这里的用法实际是变量延迟的一种快捷方式,变量延迟一般用在for的循环体里面。
call,%%b%a%%% 这里的逗号实际是一个分隔符,和空格一样,还有很多分隔符可用,比如上例中的 echo:!b%a%! ,当然并不是所有的命令都可以这样用,看情况而定……
C:\>echo+cn-dos.net
cn-dos.net
C:\>echo/cn-dos.net
cn-dos.net
C:\>echo[cn-dos.net
cn-dos.net
C:\>echo:cn-dos.net
cn-dos.net
C:\>echo;cn-dos.net
cn-dos.net
原文地址:http://www.cn-dos.net/forum/viewthread.php?tid=41143 |