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

[文本处理] 批处理如何删除txt中与文件名相同的内容?

[复制链接]
发表于 2014-12-3 13:20:29 | 显示全部楼层 |阅读模式
如txt文件名为: 济南妇科医院.txt,如何把内容中所有的 济南妇科医院 删除?
 楼主| 发表于 2014-12-3 13:21:15 | 显示全部楼层
sed 可以吗?
 楼主| 发表于 2014-12-3 13:30:58 | 显示全部楼层
求大侠告知 不胜感激
发表于 2014-12-3 13:36:07 | 显示全部楼层
sed肯定可以,待SED熟手来上代码,不过这个问题纯批处理也是可以办到的。

  1. @echo off
  2. (for /f "tokens=*" %%i in (济南妇科医院.txt) do (
  3.   set strLine=%%i
  4.   setlocal enabledelayedexpansion
  5.   echo !strLine:济南妇科医院=!
  6.   endlocal
  7. ))>济南妇科医院_new.txt
  8. start "" 济南妇科医院_new.txt
复制代码
发表于 2014-12-3 13:56:56 | 显示全部楼层
  1. sed -i "s/济南妇科医院//g" 济南妇科医院.txt
复制代码
 楼主| 发表于 2014-12-3 14:09:57 | 显示全部楼层
回复 5# DAIC


    感谢回复,但是我只是举例,其实好多个txt文件,怎么能一次性处理呢?就是怎么引用文件名呢?
 楼主| 发表于 2014-12-3 14:10:51 | 显示全部楼层
回复 4# amwfjhh


    只是拿一个文件举例,实际有很多txt文件
 楼主| 发表于 2014-12-3 14:25:41 | 显示全部楼层
哪位大侠能给解答一下?急等呀 谢谢了
发表于 2014-12-3 15:39:39 | 显示全部楼层
回复 6# xxm19810711
  1. @echo off
  2. for /f "delims=" %%i in ('dir /b *.txt') do (
  3.     sed -i "s/%%i//g" "%%i"
  4. )
复制代码
 楼主| 发表于 2014-12-3 15:46:16 | 显示全部楼层
回复 9# DAIC


    非常感谢回复,但是调用的文件名是 文件名.txt 的,也就是说txt中只有内容里是 文件名.txt才会删除。 如何把没有txt的内容删除呢?谢谢
 楼主| 发表于 2014-12-3 15:47:21 | 显示全部楼层
回复 9# DAIC


    %%i 调用的文件名是包含 扩展名 txt的,如何去掉这个扩展名呢?
发表于 2014-12-3 16:14:58 | 显示全部楼层
回复 11# xxm19810711
  1. @echo off
  2. for /f "delims=" %%i in ('dir /b *.txt') do (
  3.     sed -i "s/%%~ni//g" "%%i"
  4. )
复制代码
 楼主| 发表于 2014-12-3 16:20:26 | 显示全部楼层
回复 12# DAIC


    成功了,太感谢了!!!!牛人
发表于 2014-12-3 17:14:22 | 显示全部楼层
纯属个人爱好:
  1. gawk "FNR==1{name=FILENAME;gsub(/\.[^\.]+$/,"",name)}{gsub(name,"")>=0;print >FILENAME ".tmp"}" *.txt
  2. del *.txt
  3. ren *.txt.tmp *.
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 12:22 , Processed in 0.020045 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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