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

[文本处理] [已解决]如何写个直接把html的特定字符删除 的批处理?

[复制链接]
发表于 2011-7-25 12:28:12 | 显示全部楼层 |阅读模式
本帖最后由 ik22 于 2011-7-26 17:35 编辑

大家好,小弟想请大家帮忙一下。如下:
翻墙        F:\1003\59352.html
办证        E:\2010\1209\1443.html
办证        E:\2010\1209\1454.html
翻墙        F:\2010\0921\6860.html
办证        E:\2010\0611\138359.html

我想写个批处理,过程是 先把第一条的路径对应的那个关键字删除,然后用记事本打开。过几秒钟后,在处理下一条..过几秒后又处理下一条。这样的批处理如何写?
  1. @echo off
  2. for /f "usebackq tokens=1,2" %%a in ("1.txt") do (
  3.     sed -i "s/%%a//g" %%b
  4.     start notepad %%b
  5.     nircmdc wait 10000
  6. )
复制代码
http://www.pement.org/sed/gsed407x.zip
http://nirsoft.net/utils/nircmd.zip

把 sed.exe 和 nircmdc.exe 放到 C:\WINDOWS 目录下

评分

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

查看全部评分

发表于 2011-7-25 13:17:24 | 显示全部楼层
本帖最后由 tmplinshi 于 2011-7-26 15:52 编辑

因为把题意理解错了,以下代码是错的。
  1. @echo off

  2. set file="1.txt"

  3. for /f %%a in (' "find /c /v "" <%file%" ') do set n=%%a

  4. for /l %%a in (1 1 %n%) do (
  5.     sed -i "%%a s/[^\t ]\+//" %file%
  6.     start "" %file%
  7.     rem 等待 10 秒
  8.     nircmdc wait 10000
  9. )
复制代码
http://www.pement.org/sed/gsed407x.zip
http://nirsoft.net/utils/nircmd.zip
 楼主| 发表于 2011-7-25 13:55:19 | 显示全部楼层
回复 2# tmplinshi


    版主,假如我只 处理一条
办证        E:\2010\1209\1443.html
我想直接写在批处理里面,不借助其他软件程序,能实现吗。怎么写好呢..
发表于 2011-7-25 14:12:09 | 显示全部楼层
回复 3# ik22


是否是这个意思:

如果第二列是“E:\2010\1209\1443.html”,则删除第一列,然后退出批处理。
发表于 2011-7-25 18:12:02 | 显示全部楼层
  1. (for /f "tokens=2" %%i in ("办证        E:\2010\1209\1443.html
  2. ")  do echo %%i)>1.txt
复制代码
延时用ping就好了……
 楼主| 发表于 2011-7-25 18:19:40 | 显示全部楼层
回复 4# tmplinshi

   哈,我想了一下 不用了。。用你刚刚第一次说的方法就行了。谢谢
 楼主| 发表于 2011-7-25 18:37:26 | 显示全部楼层
回复 2# tmplinshi


是不是把
http://www.pement.org/sed/gsed407x.zip
http://nirsoft.net/utils/nircmd.zip
  这两个都放在 C:\WINDOWS 目录下???    我放了,运行批处理,结果不会删除对应的文字哦。。
发表于 2011-7-25 18:57:57 | 显示全部楼层
回复 7# ik22


    不会没有解压吧?解压后把 sed.exe 和 nircmdc.exe 放到 C:\WINDOWS 目录下。
发表于 2011-7-25 18:59:20 | 显示全部楼层
延时用ping就好了……
Hello123World 发表于 2011-7-25 18:12



    反正都用了第三方了,多用一个也无妨。
 楼主| 发表于 2011-7-26 15:20:07 | 显示全部楼层
回复 8# tmplinshi


    解压了,都放在里面了。运行批处理后,1.txt 文本中的文字是没了,但实际html文件中的文字却没有变化。
发表于 2011-7-26 15:31:42 | 显示全部楼层
回复  tmplinshi


    解压了,都放在里面了。运行批处理后,1.txt 文本中的文字是没了,但实际html文 ...
ik22 发表于 2011-7-26 15:20


之前完全理解错了你的题意。。
发表于 2011-7-26 15:37:44 | 显示全部楼层
本帖最后由 tmplinshi 于 2011-7-26 15:50 编辑

回复 10# ik22
  1. @echo off
  2. for /f "usebackq tokens=1,2" %%a in ("1.txt") do (
  3.     sed -i "s/%%a//g" %%b
  4.     start notepad %%b
  5.     nircmdc wait 10000
  6. )
复制代码
要删除的字符中不存在特殊字符吧?比如点(.)、星号(*)、[0-9]、\? 等。有的话会错删。

评分

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

查看全部评分

 楼主| 发表于 2011-7-26 17:36:33 | 显示全部楼层
回复 12# tmplinshi


    感谢版主,现在问题解决了,哈 谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 00:20 , Processed in 0.021961 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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