Board logo

标题: [文本处理] [已解决]批处理怎样根据规则进行文本替换? [打印本页]

作者: sxw    时间: 2011-10-18 13:44     标题: [已解决]批处理怎样根据规则进行文本替换?

本帖最后由 sxw 于 2011-10-18 23:31 编辑

帮人问一道题:根据a.txt中的替换规则,目标文件为text.txt。
将text.txt中的每一行按如下规则替换:

如果出现|左边的字符全部替换为|右边的字符
a.txt类似下面的内容:(用|分隔,且其左右两边不再有其它的|)
  1. aaa|bbb_
  2. zzz|_aaa
  3. 123|321
  4. ___|---
  5. +++|$$$
  6. (((|)))
  7. <<<|>>>
  8. """|'''
  9. ```|""""
  10. ...|^^^
  11. ......
复制代码
比如text.txt中类容如下
  1. ___123___
  2. zzz___...
  3. +++
复制代码
则替换后变为:
  1. ---321---
  2. _aaa---^^^
  3. $$$
复制代码

作者: 601997526    时间: 2011-10-18 16:43

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=2 delims=:" %%a in ('find /v /c "" text.txt') do set a=%%a
  3. (for /l %%i in (1 1 %a%) do (set /p p=
  4. for /f "tokens=1* delims=|" %%i in (a.txt) do (
  5. set p=!p:%%i=%%j!)
  6. echo !p!
  7. ))<text.txt
  8. pause
复制代码

作者: sxw    时间: 2011-10-18 19:08

回复 2# 601997526


   

  谢啦,成功了。




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