中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 怎样替换文本的字符串(请肩膀上有星的都来看看)[已结]
« [1] [2] »
作者:
标题: 怎样替换文本的字符串(请肩膀上有星的都来看看)[已结] 上一主题 | 下一主题
hbby
中级用户





积分 220
发帖 99
注册 2005-8-16
状态 离线
『楼 主』:  怎样替换文本的字符串(请肩膀上有星的都来看看)[已结]

怎么样替换文本中的字符串

比如说,

*:\GHOSTSYS

(*代表任意字符,可替换的字符)

我要寻找:\GHOSTSYS,不管*的数字是什么,我要替换它为F。

请高手指教

[ Last edited by hbby on 2007-9-5 at 01:57 AM ]

2007-8-30 20:36
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 2 楼』:  

try this one:

  Quote:
C:\>set a=*:\GHOSTSYS

C:\>set b=F%a:~-10%

C:\>echo %b%
F:\GHOSTSYS



2007-8-30 20:48
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hbby
中级用户





积分 220
发帖 99
注册 2005-8-16
状态 离线
『第 3 楼』:  

老哥,*:\GHOSTSYS是在一个文本文件里面,*号是任意字母,如何替换,还请明示,谢谢!

文本内容如下:
IF NOT EXIST D:\GHOSTSYS\NUL MD D:\GHOSTSYS
IF NOT EXIST E:\GHOSTSYS\NUL MD E:\GHOSTSYS
或者是其他字母,*是个变量

[ Last edited by hbby on 2007-8-30 at 08:55 PM ]

2007-8-30 20:53
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hbby
中级用户





积分 220
发帖 99
注册 2005-8-16
状态 离线
『第 4 楼』:  

我顶下,请有思路的朋友帮忙看看,谢谢

2007-8-31 15:45
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 5 楼』:  

把A到Z都替换一边。。没有其他的情况了吧?

2007-8-31 16:24
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hbby
中级用户





积分 220
发帖 99
注册 2005-8-16
状态 离线
『第 6 楼』:  

那代码多么不简练啊

2007-8-31 17:15
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 7 楼』:  

//那代码多么不简练啊

两个for循环应该可以搞定了
刚才试着写了一下
发现变量嵌套的地方老是有问题
看来要想融汇贯通变量嵌套还需要时日啊
等待学习高人的代码

2007-8-31 17:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 8 楼』:  

sed "s/[A-Z]:/F:/g" 1.txt



三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2007-8-31 18:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hbby
中级用户





积分 220
发帖 99
注册 2005-8-16
状态 离线
『第 9 楼』:  

最好用系统自己的命令,向各位高手学习!

2007-8-31 18:53
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hbby
中级用户





积分 220
发帖 99
注册 2005-8-16
状态 离线
『第 10 楼』:  

我用以下命令行只能替换指定代码,不能替换变量,高手看看怎么修改!
@echo off
set /p a=请输入驱动器号(不包含:):
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in (1.txt) do set "n=%%i"&&set n=!n:d:\GHOSTSYS=%a%:\GHOSTSYS!&&echo !n!>>2.txt

2007-8-31 18:54
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 11 楼』:  

用个for
然后SET一个A-Z的字符串……
然后一个个推进FOR

2007-8-31 20:24
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 12 楼』:  

当你向前走一步就可以到达目的地的时候,你也可以选择向后转,绕地球一周再来。
这样,你看到了以前从所未见的美景,也因此浪费了自己的青春和其它美好的东西。
个中利弊,只有自己斟酌了。



三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2007-9-1 08:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hbby
中级用户





积分 220
发帖 99
注册 2005-8-16
状态 离线
『第 13 楼』:  



  Quote:
Originally posted by slore at 2007-8-31 20:24:
用个for
然后SET一个A-Z的字符串……
然后一个个推进FOR

具体点,代码应该怎么写呀?

2007-9-1 09:37
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 14 楼』:  

@echo off&&setlocal enabledelayedexpansion
Set DriverName=ABCDEFGH
for /l %%i in (0,1,7) do echo !DriverName:~%%i,1!
pause

2007-9-1 09:54
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hbby
中级用户





积分 220
发帖 99
注册 2005-8-16
状态 离线
『第 15 楼』:  

好象还是不行哦,能再具体点吗?谢谢

2007-9-1 20:27
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: