Board logo

标题: [其他] 批处理如何使用基于变量的变量的值? [打印本页]

作者: wacs5    时间: 2009-11-19 13:13     标题: 批处理如何使用基于变量的变量的值?

标题我不知道如何描述:举个例子

set IP1="192.168.1.1"

set IP2="192.168.1.20"

set IP3="192.168.1.31"


set /p input=请输入IP地址序号:


如何通过input得到相应的IP
比如
输入1得到:"192.168.1.1"
输入2得到:"192.168.1.20"
作者: batman    时间: 2009-11-19 13:41

  1. @echo off&setlocal enabledelayedexpansion
  2. for %%a in (1 20 31) do set /a n+=1&set "_!n!=%%a"
  3. for /l %%a in (1,1,3) do set /p=^(%%a^) 192.168.1.!_%%a! <nul
  4. echo.&set /p num=请输入选择的ip的序号:
  5. echo 你选择的ip是:192.168.1.!_%num%!
  6. pause>nul
复制代码

作者: wacs5    时间: 2009-11-19 16:19

谢谢版主!
功力深厚啊。


不过我不是有点不懂(我批处理刚入门,勿笑)
第一个for定义了三个变量:
_1=1
_2=20
_3=31

第二个for就有点晕了。不知道什么意思
set /p是给变量赋值的,我就不知道/p后紧跟着等号,是怎么回事,
另外为什么要重定向空输入。


最后想问一下,如果第一个for那里想要输出_n的值应当怎么弄。或者说!嵌套有什么说法。
一直找不到相关的东西,我知道%与!是变量延迟的效果
以前网上也找到一些教材,不过很多不理想,都是讲最简单的。
有没有好的推荐一些。

谢谢。
作者: batman    时间: 2009-11-19 16:32

这个可能对你有用:
http://www.bathome.net/viewthrea ... highlight=%2Bbatman




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2