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

[文本处理] [已解决]如何让批处理删除文本的指定特征字?

[复制链接]
发表于 2011-2-10 17:44:28 | 显示全部楼层 |阅读模式
本帖最后由 xptool 于 2011-10-12 19:54 编辑

如何让批处理删除文本的指定特征字

例如  文本a.txt 处理后 存在b.txt

=1a248eefe9079208adedfb0b8f391e59 target=总是blank><img src特征=../images/2.gif name='tmp2'

1
删除  总是 和 特征之间的文字不包含总是  和特征

结果

=1a248eefe9079208adedfb0b8f391e59 target=总是特征=../images/2.gif name='tmp2'

2
删除总是和特征之间的文字  包含总是和特征

结果

=1a248eefe9079208adedfb0b8f391e59 target==../images/2.gif name='tmp2'

3

删除总是和特征
=1a248eefe9079208adedfb0b8f391e59 target=blank><img src=../images/2.gif name='tmp2'


谢谢朋友们帮助

[ 本帖最后由 xptool 于 2011-2-10 17:51 编辑 ]

评分

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

查看全部评分

发表于 2011-2-10 17:56:21 | 显示全部楼层
这用纯P比较麻烦,sed应该很方便,等人来~

建议求助的时候言简意赅,要不然估计很多人会没耐心看...举例时化繁为简,就像演戏时不需要把每个人名字都报出来,配角只需要说路人甲、路人乙就行了
 楼主| 发表于 2011-2-10 18:30:12 | 显示全部楼层
谢谢

希望大家能看懂
发表于 2011-2-11 09:23:00 | 显示全部楼层
  1. @echo off
  2. for /f "tokens=1-3 delims=总是特征" %%i in (a.txt) do (
  3.     echo %%i总是特征%%k>>b.txt
  4.     echo %%i%%k>>b.txt
  5.     echo %%i%%j%%k>>b.txt
  6. )
  7. pause
复制代码
发表于 2011-2-11 11:33:33 | 显示全部楼层
楼上这样会漏字。

1:
  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "delims=" %%i in (a.txt) do (
  3.     set tmp=%%i
  4.     set /a 总是=0,特征=0
  5.     for /l %%a in (0 1 1000) do (
  6.         if !总是!==0 set /p=!tmp:~%%a,1!<nul
  7.         if "!tmp:~%%a,2!"=="总是" set 总是=1&set /p=是<nul
  8.         if "!tmp:~%%a,2!"=="特征" (
  9.             if !总是!==1 set /p=!tmp:~%%a,1!<nul
  10.             set 总是=0
  11.         )
  12.     )
  13.     echo;
  14. ))>b.txt
  15. pause
复制代码
2:
  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "delims=" %%i in (a.txt) do (
  3.     set tmp=%%i
  4.     set /a 总是=0,特征=0
  5.     for /l %%a in (0 1 1000) do (
  6.         set /a "特征-=^!^!特征"
  7.         if "!tmp:~%%a,2!"=="总是" set 总是=1
  8.         if "!tmp:~%%a,2!"=="特征" (
  9.             set /a 总是=0,特征=2
  10.         )
  11.         if !总是!==0 if !特征!==0 set /p=!tmp:~%%a,1!<nul
  12.     )
  13.     echo;
  14. ))>b.txt
  15. pause
复制代码
3:
  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "delims=" %%i in (a.txt) do (
  3.     set tmp=%%i
  4.     set "tmp=!tmp:总是=!"&set "tmp=!tmp:特征=!"
  5. for %%a in ("!tmp!") do echo %%~a
  6. ))>b.txt
  7. pause
  8. ::效率高,但是遇到特殊字符可能出错
复制代码
  1. @echo off &setlocal enabledelayedexpansion
  2. (for /f "delims=" %%i in (a.txt) do (
  3.     set tmp=%%i
  4.     set /a 总是=0,特征=0
  5.     for /l %%a in (0 1 1000) do (
  6.         set /a "总是-=^!^!总是","特征-=^!^!特征"
  7.         if "!tmp:~%%a,2!"=="总是" set 总是=2
  8.         if "!tmp:~%%a,2!"=="特征" set 特征=2
  9.         if !总是!==0 if !特征!==0 set /p "m=!tmp:~%%a,1!"<nul
  10.     )
  11.     echo;
  12. ))2>nul
  13. pause
  14. ::效率低,但是保险
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 03:26 , Processed in 0.021038 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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