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

[文件操作] [已解决]批处理删除文件夹下txt文本的指定内容

[复制链接]
发表于 2015-1-11 18:29:45 | 显示全部楼层 |阅读模式
本帖最后由 删除记忆002 于 2015-1-12 12:40 编辑

比如在e:\www 以及www下还有很多子文件夹,每个子文件夹都有一个a.txt文本,
请问如何批量删除所有子文件夹下a.txt文本中指定的文字?

评分

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

查看全部评分

发表于 2015-1-11 19:57:51 | 显示全部楼层
能否举个例子说明一下删除之前和删除之后a.txt分别是什么样子的
发表于 2015-1-11 21:03:18 | 显示全部楼层
  1. fr "e:\www\a.txt" -s -f:"指定的文字" -t
复制代码
fr 下载地址:http://baiy.cn/utils/fr/index.htm
 楼主| 发表于 2015-1-11 22:22:26 | 显示全部楼层
回复 2# DAIC


    a.txt之前   书名   计算机网络    价格   34    时间   2014年


    删除之后a.txt     书名   计算机网络  价格  34


   a.txt是所有子文件夹里都有的文件
 楼主| 发表于 2015-1-11 22:27:35 | 显示全部楼层
回复 3# tmplinshi


    @echo off
findstr /i /v /g:"a.txt" "b.txt">>end.txt
del b.txt
ren end.txt b.txt
pause

我用的是这段代码,不过他只能删除同个目录下的b.txt文本,子文件夹里的b.txt没作用,要怎么修改呢
发表于 2015-1-12 08:37:40 | 显示全部楼层
回复 4# 删除记忆002


请确认一下删除之前a.txt是下面哪种格式
书名   计算机网络    价格   34    时间   2014年
书名   计算机网络
价格   34
时间   2014年
书名
计算机网络
价格
34
时间
2014年
 楼主| 发表于 2015-1-12 09:30:31 | 显示全部楼层
回复 6# DAIC


    删除之前的a.txt文本如下:

   书名   计算机网络    价格   34    时间   2014年
发表于 2015-1-12 09:39:49 | 显示全部楼层
  1. @echo off
  2. for /f "" %%i in ('dir /b /s /a-d "e:\www\a.txt"') do (
  3.     sed -i "s/时间   2014年//" "%%i"
  4. )
复制代码

评分

参与人数 1技术 +1 收起 理由
删除记忆002 + 1 问题解决了

查看全部评分

 楼主| 发表于 2015-1-12 10:34:29 | 显示全部楼层
回复 8# DAIC

上面那个for循环里面是set吧?

运行后出现这个错误:环境变量 -i "s/时间     2014//" "e:\www\fdf\新建文本文档.txt" 没有定义
 楼主| 发表于 2015-1-12 11:37:24 | 显示全部楼层
回复 8# DAIC


    @echo off
    for /f "" %%i in ('dir /b /s /a-d "e:\www\b.txt"') do (
        e:\www\sed.exe -i "s/时间   2014年//" "%%i"
    )

  运行这段代码后,b.txt文本里面的:时间  2014年还在,并没有去掉
发表于 2015-1-12 11:46:48 | 显示全部楼层
回复 10# 删除记忆002


    把你的b.txt压缩一下传上来我试试
 楼主| 发表于 2015-1-12 12:37:00 | 显示全部楼层
回复 11# DAIC


    问题解决了,是我把文字输错,谢谢。
发表于 2015-1-12 13:52:55 | 显示全部楼层
你好,我还有个问题想请教你,通过下面这段代码修改过的文件,其文件夹的修改时间都是相同的,有没有办法使其不同。
比如:
文件名     2015/1/12 12:23
文件名     2015/1/12 12:23

加个延时试试
  1. @echo off
  2. for /f "delims=" %%i in ('dir /b /s /a-d "e:\www\a.txt"') do (
  3.     echo 正在处理文件 %%i
  4.     sed -i "s/时间   2014年//" "%%i"
  5.     ping -n 70 127.1 >nul
  6. )
复制代码
另外,有问题直接在论坛回帖就行了,请不要给我发私信。
 楼主| 发表于 2015-1-12 13:58:33 | 显示全部楼层
回复 13# DAIC


    好的,问题解决了,十分感谢
 楼主| 发表于 2015-1-12 20:30:04 | 显示全部楼层
回复 13# DAIC


    又有个新问题,有很多个文件夹比如名字为  dddd
                                                                ccc

    如何把文件夹名字变成  dddd--   
                                    ccc--

   也就是在每个文件夹名后加上--
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 21:38 , Processed in 0.018245 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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