[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理怎样根据规则进行文本替换?

本帖最后由 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. $$$
复制代码
1

评分人数

    • CrLf: 感谢给帖子标题标注[已解决]字样PB + 2

回复 2# 601997526


   

  谢啦,成功了。

TOP

  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
复制代码
1

评分人数

    • sxw: 乐于助人技术 + 1

TOP

返回列表