中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-12 21:38
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求助,循环替换,递增的字符 查看 886 回复 4
楼 主 求助,循环替换,递增的字符 发表于 2010-03-01 14:16 ·  中国 天津 滨海新区 联通
新手上路
积分 10
发帖 6
注册 2007-10-19 02:04
18年会员
UID 100120
性别 男
状态 离线
在一个文本中 需要循环替换A1,B1一直到A20,B20.
例如原文本:

Range("A1").Value = "TEST" Or Range("A1").Value = "TEST2"
Range("B1").Value = "TEST3"

如:

Range("A1").Value = "TEST" Or Range("A1").Value = "TEST2"
Range("B1").Value = "TEST3"

Range("A2").Value = "TEST" Or Range("A2").Value = "TEST2"
Range("B2").Value = "TEST3"
..........
2 发表于 2010-03-01 14:54 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
没太明白你的意思,不知道是不是这样:
@echo off&setlocal enabledelayedexpansion
for /l %%i in (1 1 20) do for /f "delims=" %%a in (test.txt) do (set P=%%a
set P=!P:A1=A%%i!
set P=!P:B1=B%%i!
echo !P!&echo.)>>test-.txt
3 发表于 2010-03-01 14:59 ·  中国 北京 联通
中级用户
★★
积分 499
发帖 225
注册 2008-12-30 22:09
17年会员
UID 135392
性别 男
状态 离线
for /L %%a in (1,1,20) do (
echo Range("A%%a").Value = "TEST" Or Range("A%%a").Value = "TEST2" >>sybn.txt
echo Range("B%%a").Value = "TEST3" >>sybn.txt
)

[ Last edited by sl543001 on 2010-3-1 at 20:50 ]
SYBNQQ:354324773
4 发表于 2010-03-01 15:20 ·  中国 天津 滨海新区 联通
新手上路
积分 10
发帖 6
注册 2007-10-19 02:04
18年会员
UID 100120
性别 男
状态 离线
感谢楼上,不过代码不执行。
再次感谢Hanyeguxing,脚本很好用。学习了。
再请教一下
   Range("A2").Value = Range("A1").Value

如果这样递增,如何做呢。

[ Last edited by superdoor on 2010-3-1 at 17:47 ]
5 发表于 2010-03-01 19:00 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
for %%a in (1,1,20) do (
echo Range("A%%a").Value = "TEST" Or Range("A%%a").Value = "TEST2" >>sybn.txt
echo Range("B%%a").Value = "TEST3" >>sybn.txt
)
输出的括号前要加转意符
使用set /a运算
论坛跳转: