中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 替换字符串递增变量 上一主题 | 下一主题
flyingphf
中级用户





积分 392
发帖 142
注册 2007-6-10
状态 离线
『楼 主』:  替换字符串递增变量

文件里内容如下
ccc 1aa bbb
ccc 1aa bbb
ccc 1aa bbb
ccc 1aa bbb
ccc 1aa bbb

我如何替换变量1aa得到结果为
ccc 1aa bbb
ccc 2aa bbb
ccc 3aa bbb
ccc 4aa bbb
ccc 5aa bbb
谢谢

2008-6-2 17:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 2 楼』:  


@echo off & SetLocal EnableDelayedExpansion
set /a n=1

for /f "tokens=1,2,*" %%a in (urfile.ext) do (
    echo.%%a !n!aa %%c>>newfile
    set /a n+=1
)

start notepad newfile
[ Last edited by lxmxn on 2008-6-23 at 10:31 PM ]

2008-6-20 03:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
komafd2
初级用户




积分 53
发帖 20
注册 2007-6-8
状态 离线
『第 3 楼』:  

lxmxn兄的代码是不是写欠了,改了一下

@echo off & SetLocal EnableDelayedExpansion

for /f "tokens=1,2,*" %%a in (1.txt) do (
set /a n=!n!+1
echo %%a !n!aa %%c>>2.txt
)
start notepad 2.txt



冷静是危难中最好的救生圈!
2008-6-21 16:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by komafd2 at 2008-6-21 16:55:
lxmxn兄的代码是不是写欠了,改了一下

@echo off & SetLocal EnableDelayedExpansion

for /f "tokens=1,2,*" %%a in (1.txt) do (
set /a n=!n!+1
echo %%a !n!aa %%c>& ...

嗯,的确写掉了一个语句,已经改正过来了,多谢提醒…… ^_^

2008-6-23 22:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qzwqzw
银牌会员

天的白色影子


积分 2342
发帖 635
注册 2004-3-6
状态 离线
『第 5 楼』:  

虽然在DOS论坛
但也不一定局限在DOS的方法
类似的问题
我一定会用excel
而非批处理
因为同类问题我通常只会遇到一次
我不会辛苦为此专门编一段代码的

当然dos下也是有第三方的命令行工具可以直接实现楼主的目的
比如最经典的sed

2008-6-25 22:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 6 楼』:  

若用批处理,sed就不必了,内部命令足矣。
很想学习sed,但感觉还是前学后忘,



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-6-28 21:25
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 7 楼』:  



  Quote:
Originally posted by plp626 at 2008-6-28 21:25:
若用批处理,sed就不必了,内部命令足矣。
很想学习sed,但感觉还是前学后忘,

多练习,时间长了自然就会了,我感觉学习sed最关键的是理解 pattern space 和 hold buffer 的作用和关系。另外,regex 也应该要熟练。

[ Last edited by lxmxn on 2008-6-29 at 03:43 AM ]

2008-6-29 03:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
isreal
新手上路





积分 4
发帖 3
注册 2007-1-8
状态 离线
『第 8 楼』:  谁知道%%与!!运算符的区别

问大家一个问题
@echo off & SetLocal EnableDelayedExpansion
for /f "tokens=1,2,*" %%a in (1.txt) do (
set /a n=!n!+1
echo %%a %n%aa %%c>>2.txt
这个地方原来的!n!我改成了%n%为什么就出错呢?
)
start notepad 2.txt
我真的不知道是什么原因,%n%不是引用变量n吗?
!n!这个也是引用变量n吗?
请高手解答

2009-11-18 17:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: