Board logo

标题: [文本处理] 【已解决】BAT脚本如何批量删除多个文件中指定开头内容的行? [打印本页]

作者: 滴血雄鹰    时间: 2019-1-20 17:21     标题: 【已解决】BAT脚本如何批量删除多个文件中指定开头内容的行?

本帖最后由 滴血雄鹰 于 2019-1-21 10:35 编辑

如何批量删除文件夹中多个文件中指定开头内容的行?
我想在文件夹111中多个TXT文件中,删除指定内容为“=========”和“更多精彩尽在”的行?


下面是一个文件夹中一个文件中指定开头内容删除代码:
  1. @echo off
  2. findstr /v /b "目标开头内容" C:\111\1.txt>2.txt
  3. del C:\111\1.txt
  4. ren C:\111\2.txt C:\111\1.txt
复制代码

作者: smss    时间: 2019-1-20 18:30

使用notepad++很方便
作者: yhcfsr    时间: 2019-1-20 18:31

  1. @echo off
  2. for /f "delims=" %%a in ('dir/a-d/s/b *.txt') do (
  3. findstr /ri /b /v "========= 更多精彩尽在" "%%a">"%%a.tmp"
  4. move "%%a.tmp" "%%a">nul
  5. )
复制代码

作者: Batcher    时间: 2019-1-20 19:59

  1. @echo off
  2. for /f "delims=" %%a in ('dir /a-d /b /s *.txt') do (
  3.     findstr /ri /b /v "========= 更多精彩尽在" "%%a" > "%%~nxa.tmp"
  4. )
  5. ren "*.tmp" "*.txt"
复制代码

作者: 滴血雄鹰    时间: 2019-1-21 08:32

回复 3# yhcfsr


@echo off

for /f "delims=" %%a in ('dir/a-d/s/b *.txt') do (
        findstr /ri /b /v "=============================" "%%a">"%%a.tmp"
        move "%%a.tmp" "%%a">nul
        findstr /ri /b /v "更多精校小说尽在知轩藏书下载" "%%a">"%%a.tmp"
        move "%%a.tmp" "%%a">nul
)

我用了上面的代码,其他TXT都能删除,就是下面的文件只删除部分,不知道什么原因?

https://pan.baidu.com/s/14jL45IEvguuyybHM6LFgwg
作者: 滴血雄鹰    时间: 2019-1-21 08:37

回复 4# Batcher


我用了你的代码,其他TXT都能删除,就是下面的文件只删除部分,不知道什么原因?

https://pan.baidu.com/s/14jL45IEvguuyybHM6LFgwg

会多增加一个TXT文件。
作者: yhcfsr    时间: 2019-1-21 11:03

回复 5# 滴血雄鹰

这个文件是UTF8编码的,自己转为ANSI即可
作者: 滴血雄鹰    时间: 2019-1-21 12:56

回复 7# yhcfsr


  谢谢!




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2