[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 批处理如何使用基于变量的变量的值?

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

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"

  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
复制代码
***共同提高***

TOP

谢谢版主!
功力深厚啊。


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

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


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

谢谢。

TOP

***共同提高***

TOP

返回列表