1,批处理放到工作目录下!
2,工作目录中除需要被处理的.txt文件外,不应有其他.txt文件!
3,操作前最好将所有被处理的文件备份!
如果文件中不含指定内容,则文件将被清空,且不保留原文件中的空行,并删除所有以 ; 开头的行,则:
@echo off&setlocal enabledelayedexpansion
for %%a in (*.txt) do set n=0&for /f "usebackq delims=" %%b in ("%%a") do (set b=%%b
if "!b:~0,2!"=="第二" set n=1
if "!b:~0,2!"=="第三" set n=0
if !n!==1 echo.%%b)>>"%%~na.hanyeguxing"
del /a/f/q *.txt
ren *.hanyeguxing *.txt
如果要保留原文件中的空行、以 ; 开头的行,则
@echo off&setlocal enabledelayedexpansion
for %%a in (*.txt) do set n=0&for /f "eol= delims=" %%b in ('findstr /n .* "%%a"') do (
set b=%%b&set b=!b:*:=!
if "!b:~0,2!"=="第二" set n=1
if "!b:~0,2!"=="第三" set n=0
if !n!==1 echo.!b!)>>"%%~na.hanyeguxing"
del /a/f/q *.txt
ren *.hanyeguxing *.txt
如果如果要保留原文件中的空行、以 ; 开头的行,
且如果原文件中不含指定内容,还需要保留此文件,则
@echo off&setlocal enabledelayedexpansion
for %%a in (*.txt) do (set n=0&set m=0
for /f "eol= delims=" %%b in ('findstr /n .* "%%a"') do (
set b=%%b&set b=!b:*:=!
if "!b:~0,2!"=="第二" set n=1&set m=1
if "!b:~0,2!"=="第三" set n=0
if !n!==1 echo.!b!)>>"%%~na.hanyeguxing"
if !m!==0 copy "%%a" "%%~na.hanyeguxing")
del /a/f/q *.txt
ren *.hanyeguxing *.txt
Last edited by Hanyeguxing on 2010-4-9 at 17:01 ]