[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
你是说只删除倒数第一行和倒数第二行符合要求的行吗?

TOP

效率应当不算高,未经测试。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%a in (*.txt) do (
  4.     for /f %%x in ('type "%%a"^|find /c /v ""') do set m1=%%x&set /a m2=m1-1
  5.     set n=0
  6.     (for /f "delims=" %%i in ('type "%%a"') do (
  7.         set /a n+=1
  8.         set str=%%i
  9.         for %%y in (, 。 “ ” ? !) do set str=!str:%%y=!
  10.         if not !n!==!m1! if not !n!==!m2! echo,%%i
  11.         if !n!==!m1! if not "!str!"=="%%i" echo,%%i
  12.         if !n!==!m2! if not "!str!"=="%%i" echo,%%i
  13.     ))>#%%a
  14. )
  15. pause
复制代码

TOP

本帖最后由 qixiaobin0715 于 2021-2-24 07:00 编辑

回复 7# DDDYJQ1
这样可能效率要高一点,只有这水平了:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%a in (*.txt) do (
  4.     for /f %%x in ('type "%%a"^|find /c /v ""') do set /a m=%%x-1
  5.     set n=0
  6.     (for /f "delims=" %%i in ('type "%%a"') do (
  7.         set /a n+=1
  8.         if !n! lss !m! (
  9.             echo,%%i
  10.         ) else (
  11.             set str=%%i
  12.             for %%y in (, 。 “ ” ? !) do set str=!str:%%y=!
  13.             if not "!str!"=="%%i" echo,%%i
  14.         )
  15.     ))>#%%a
  16. )
  17. pause
复制代码

TOP

本帖最后由 qixiaobin0715 于 2021-2-26 10:15 编辑

这样效率应当可以,用到了临时文件:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%a in (*.txt) do (
  4.     set n=0
  5.     (for /f "delims=" %%i in ('type "%%a"^|sort /+100') do (
  6.         set /a n+=1
  7.         if !n! lss 3 (
  8.             set str=%%i
  9.             for %%y in (, 。 “ ” ? !) do set str=!str:%%y=!
  10.             if not "!str!"=="%%i" echo,%%i
  11.         ) else (
  12.             echo,%%i
  13.         )
  14.     ))>a.temp
  15. sort /+100 a.temp>#%%a
  16. )
  17. del a.temp
  18. pause
复制代码

TOP

本帖最后由 qixiaobin0715 于 2021-2-24 15:58 编辑

如果每行字符较多,可以将sort /+100的数增加,比如sort /+1000。总而言之sort后面的数字一定要大于最长行的字符数。

TOP

文本内容千变万化,写代码按通常情况即可,考虑太多这代码就复杂了,可根据具体情况进行调整。

TOP

返回列表