中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何替换文本中的字符呢?包含特殊字符!
作者:
标题: [求助]如何替换文本中的字符呢?包含特殊字符! 上一主题 | 下一主题
maxfull
中级用户





积分 360
发帖 120
注册 2005-7-14
状态 离线
『楼 主』:  [求助]如何替换文本中的字符呢?包含特殊字符!

我想实现的是这样的,在不使用外部命令的情况下
首先从 c:\aa.txt 中读取第一行的内容给变量 %aaa% (这个变量的内容可能包含所有未知的特殊字符如: . , / \ ] [ < > ! @ # $ % ^ ^  & * ( ) 等未知的assic字符) 然后将 c:\bb.txt 中包含的 %aaa% 变量的内容替换为 abcdef  如果不包含特殊字符我会写,但是包含了特殊字符就不知道怎么写了,希望大家帮忙,

2007-6-29 13:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 2 楼』:  

论坛里有类似的吧。

具体问题具体分析。

能把aa和bb中内容帖上来吗?

2007-6-29 14:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
maxfull
中级用户





积分 360
发帖 120
注册 2005-7-14
状态 离线
『第 3 楼』:  

由于 bb.txt 中 已经包含了 aa.txt 中的第一行,但是 aa.txt 的第一行是不固定的,动态的。

2007-6-29 14:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 4 楼』:  

似乎和特殊字符没什么关系吧?似乎特殊字符中不包含=就行了。
@echo off & setlocal enabledelayedexpansion
for /f "delims=" %%i in (a.txt) do set aaa=%%i
for /f "delims=" %%i in (b.txt) do (
set bbb=%%i
if !bbb!==!aaa! set bbb=abcdef
echo !bbb!>>c.txt
)
是不是这个意思啦?

   此帖被 +4 点积分        点击查看详情   
评分人:【 maxfull 分数: +4  时间:2007-6-29 16:23


2007-6-29 14:33
查看资料  发短消息 网志   编辑帖子  回复  引用回复
maxfull
中级用户





积分 360
发帖 120
注册 2005-7-14
状态 离线
『第 5 楼』:  

请问下 setlocal enabledelayedexpansion
这个是什么意思呢

2007-6-29 15:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 6 楼』:  

啊?这是启用延迟啊

在cmd里输入
setlocal /?
有详细点的说明。更详细的解释请到论坛里搜索。

   此帖被 +4 点积分        点击查看详情   
评分人:【 maxfull 分数: +4  时间:2007-6-29 16:23


2007-6-29 15:22
查看资料  发短消息 网志   编辑帖子  回复  引用回复
maxfull
中级用户





积分 360
发帖 120
注册 2005-7-14
状态 离线
『第 7 楼』:  

刚刚测试了下可以。。
如果我想要在 变量 aaa中在前面加入 <abc>可以实现吗?加入后再替换

2007-6-29 15:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 8 楼』:  

可以啊,只是都是整句替换的。加不加有什么区别吗?

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





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

//似乎和特殊字符没什么关系吧?似乎特殊字符中不包含=就行了。

把==改为equ能否解决等号的问题呢?

2007-6-29 15:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 10 楼』:  

不完全是这个的问题。用set的时候=号有特殊意义

2007-6-29 15:52
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: