Board logo

标题: [文本处理] 批处理怎样替换文本内容并递增其数字? [打印本页]

作者: dunian    时间: 2011-6-5 20:16     标题: 批处理怎样替换文本内容并递增其数字?

修改3个bat文件中的内容,如下:
Router1.bat文件的内容:
REM ----------Created by Xiaofan----------
@echo off
title Router1-----Created by Xiaofan
mkdir Router1
cd Router1
:reload
..\dynamips-wxp.exe -T 2001 -P 3600 -r 96 -t 3640 -c 0x2102 -p 0:NM-1FE-TX -p 1:NM-4T -s 1:1:udp:11111:127.0.0.1:11211 ..\C3640-IS.BIN --idle-pc=0x61008314
goto reload

Router2.bat文件的内容:
REM ----------Created by Xiaofan----------
@echo off
title Router2-----Created by Xiaofan
mkdir Router2
cd Router2
:reload
..\dynamips-wxp.exe -T 2002 -P 3600 -r 96 -t 3640 -c 0x2102 -p 0:NM-1FE-TX -p 1:NM-4T -s 1:1:udp:11211:127.0.0.1:11111 -s 1:0:udp:11210:127.0.0.1:11310 ..\C3640-IS.BIN --idle-pc=0x61008314
goto reload

Router3.bat文件的内容:
REM ----------Created by Xiaofan----------
@echo off
title Router3-----Created by Xiaofan
mkdir Router3
cd Router3
:reload
..\dynamips-wxp.exe -T 2003 -P 3600 -r 96 -t 3640 -c 0x2102 -p 0:NM-1FE-TX -p 1:NM-4T -s 1:0:udp:11310:127.0.0.1:11210 -s 1:2:udp:11312:127.0.0.1:11411 ..\C3640-IS.BIN --idle-pc=0x61008314
goto reload

将以上3个bat文件中标有红色部位的-T更改为“-I 1 –T”,其中的1要递增,也就是router1.bat中是“-I 1 –T” ,router2.bat中是“-I 2 –T”以此类推Router3.bat便是3。
求助各位大虾帮忙写一个批处理把bat中的内容如上要求修改掉哦!本人是小小菜鸟,实在想不出其他办法修改了!~~~先谢谢各位跟楼帮助我的兄弟姐妹了哦~~祝你们端午节快乐!~
作者: Batcher    时间: 2011-6-5 21:10

能否帮顶楼的图片改成文字?
作者: dunian    时间: 2011-6-5 21:19

2# Batcher
呵呵~~谢谢!是文字了,请帮忙~~
作者: 随风    时间: 2011-6-5 21:24

去掉“跪求”二字,认真看下版规。 http://www.bathome.net/thread-963-1-1.html
作者: Batcher    时间: 2011-6-5 21:25

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set n=0
  4. for %%a in ("Router?.bat") do (
  5.     set /a n+=1
  6.     sed -i "s/-T/-I !n! &/" "%%a"
  7. )
复制代码
http://bbs.bathome.net/thread-3981-1-1.html
作者: dunian    时间: 2011-6-5 21:37

4# 随风

呵呵~~不好意思哦!已经改了~~谢谢!
作者: dunian    时间: 2011-6-5 21:40

5# Batcher


貌似无效哦!不能更改~~纠结!还是谢谢哦~~
作者: Batcher    时间: 2011-6-5 22:16

7# dunian


你有sed.exe吗?什么版本?
作者: dunian    时间: 2011-6-5 23:06

8# Batcher

用sed可以,请问不用sed行吗?因为有些电脑并不一定有这个!
作者: batman    时间: 2011-6-6 01:00

  1. @echo off&setlocal enabledelayedexpansion
  2. for %%a in (*.bat) do (
  3.   set /a n+=1
  4.   for /f "delims=" %%b in (%%a) do (
  5.     set "str=%%b"
  6.     (for /f "tokens=2" %%b in ("!str!") do (
  7.       if "%%c" equ "-T" (
  8.         for %%d in (!n!) do echo !str: %%c = -I %%d - T !
  9.         ) else (
  10.         echo !str!
  11.       )
  12.     ))>$
  13.     move $ %%a
  14. )
复制代码





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