Board logo

标题: [文本处理] 批处理如何实现多重处理文本特定字符替换? [打印本页]

作者: formyth    时间: 2012-5-30 12:56     标题: 批处理如何实现多重处理文本特定字符替换?

有这样一个文本,内容是:

&张三
&张二&zs李四-王五
牛.大
zl钟六
小小


现要求一:
将文本中特定字符删除,剩下以下内容并排版如下——
张三
李四
王五
牛大
钟六
小小


要求二:
将要求一文本,进一步处理,形成以下级次的内容
张三\李四\王五\牛大\小小\小小\钟六

请哪位达人帮忙下啦!
作者: powerbat    时间: 2012-5-30 13:32

两个黄鹂鸣翠柳——不知所云。。。

&张三
&张二&zs李四-王五
nd.牛大
zl钟六
小小
删除怎样的“特定字符”,才能变成
张三
李四
王五
牛大
钟六
小小

张二为什么也被删除了?
作者: formyth    时间: 2012-5-30 13:38

回复 2# powerbat


    对,就是要排除张二的
作者: formyth    时间: 2012-5-30 13:40

本帖最后由 formyth 于 2012-5-30 13:55 编辑

严格讲,是要替换,把& 张二 zs . zl - 等指定的字符替换掉。有的是清除,有的是替换成回车例如 - (应该说换行)
作者: powerbat    时间: 2012-5-30 13:46

“指定的字符”是怎么指定的?规则是什么?
作者: 喃喃努努    时间: 2012-5-30 13:47

规则好像有点乱啊,不能统一吗?删除的具体是些什么东东?
作者: formyth    时间: 2012-5-30 13:53

回复 5# powerbat

嗯,感谢大侠关注哈!
这样吧,就把眼前这个例子实现就好了,不再做过多解释,因为有题目,也有结果,关键是中间的过程木有……
作者: gawk    时间: 2012-5-30 15:30

回复 7# formyth


    用set命令做替换就行了
作者: formyth    时间: 2012-5-30 15:32

回复 8# gawk

大侠,不会啊,搞了好几个,都不行,特别是多个替换搞在一起,尤其是那个回车换行……而且第二个要求,就更没有头绪了
作者: gawk    时间: 2012-5-30 15:34

回复 9# formyth


    把你搞的代码贴在顶楼,会有人告诉你哪里错了。
作者: apang    时间: 2012-5-31 10:00

本帖最后由 apang 于 2012-5-31 10:03 编辑

要求一
  1. @echo off
  2. (for /f "delims=" %%a in (a.txt) do (
  3.    set "str=%%a"
  4.    setlocal enabledelayedexpansion
  5.    set str=!str:-=^
  6. !
  7.    for %%b in ("&" "张二" "zs" "." "zl") do (
  8.      set "str=!str:%%~b=!"
  9.    )
  10.    echo !str!&endlocal
  11. ))>$
  12. more $>b.txt
  13. del $
复制代码
要求二,有什么规律?
作者: formyth    时间: 2012-5-31 16:36

回复 12# apang

感谢apang大,实在太威武了!要求二只要按照题目的要求顺序排列出来就好了——因为想解决另外一个问题,所以想通过这个解决后的思路,来完成那个问题呢




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