找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23659|回复: 2

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

[复制链接]
发表于 2011-10-18 13:44:23 | 显示全部楼层 |阅读模式
本帖最后由 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. $$$
复制代码

评分

参与人数 1PB +2 收起 理由
CrLf + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2011-10-18 16:43:50 | 显示全部楼层
  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技术 +1 收起 理由
sxw + 1 乐于助人

查看全部评分

 楼主| 发表于 2011-10-18 19:08:42 | 显示全部楼层
回复 2# 601997526


   

  谢啦,成功了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 05:09 , Processed in 0.020484 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表