标题: [文本处理] 菜鸟求助批处理嵌套循环 [打印本页]
作者: s4fe 时间: 2012-7-29 00:50 标题: 菜鸟求助批处理嵌套循环
本帖最后由 s4fe 于 2012-7-29 10:16 编辑
要生成这样的格式- config router static
-
- edit 50
-
- set device "port27"
-
- set dst 61.128.0.0/18
-
- set gateway 222.74.13.17
-
- next
复制代码
我没学过边搜索边做只能做到这样的程度了……- @echo off
-
- setlocal enabledelayedexpansion
-
- set /p input=请输入ID:
-
- set /a id=%input%
-
- for /l %%i in (1,1,100) do (
-
- set /a id+=1
-
- @echo config router static>>fw.txt
-
- @echo edit !id!>>fw.txt
-
- @echo set device "port27">>fw.txt
-
-
- for /f "delims=" %%i in (1.txt) do (
-
- @echo set dst %%i>>fw.txt
-
- set /a n+=1
-
- @echo set gateway 222.74.13.17>>fw.txt
-
- @echo next>>fw.txt
-
- )
复制代码
其他几行都是固定的东西,只有edit后面的数字需要递增 这个已经可以了
就是嵌套循环想从1.txt里读取每一行然后放到set dst后面就不行了
对了 还想控制循环次数 上面的循环100次是因为我知道有多少行了 先得到1.txt的行数,然后把这个行数当作变量放到for里就可以控制循环次数了吧?
请大牛帮帮忙 我以前不会 这些也都是现查现学的 最好带上注释 谢谢啦
作者: s4fe 时间: 2012-7-29 10:17
顶起来~~~~~~~~~~~~~~
作者: caruko 时间: 2012-7-29 10:58
循环读取文本用for /f
把//注释去掉才能运行- @echo off & setlocal ENABLEDELAYEDEXPANSION //开启变量延迟
- set /p id=请输入ID:
- (
- for /f "delims=" %%a in (1.txt) do ( //循环读取1.txt,一次一行
- set /a id+=1
- echo config router static
- echo edit !id!
- echo set device "port27"
- echo set dst %%a
- echo set gateway 222.74.13.17
- echo next
- )
- )>fw.txt //把所有输出一次写入fw.txt
复制代码
作者: s4fe 时间: 2012-7-29 15:10
1.不需要set /a id=%input%这个也能取到值?
2.输出的时候echo 111>1.txt和@echo 111>1.txt有什么区别呢?
3.%%a和%a%有什么区别呢?
我才开始学习很多基础的东西不懂
作者: 苦涩的回忆 时间: 2012-7-30 17:49
1.不需要set /a id=%input%这个也能取到值,只是后面变量名要改成input
2.输出的时候echo 111>1.txt和@echo 111>1.txt,前者有回显,后都没有(好像是废话)。
3..%%a用于for语句的形式变量,而%a%则是全局变里。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |