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

[文本处理] 【已解决】BAT:如何删除大于等于8位数的文本行

[复制链接]
发表于 2015-2-23 04:53:32 | 显示全部楼层 |阅读模式
本帖最后由 思想之翼 于 2015-2-23 16:50 编辑

D:/数据/内有若干txt文本,每个文本内数据格式为:
126459
1264589
126459
126458
12645370
126458
...
欲批量删除各文本内大于等于8位数的文本行(处理后的数据覆盖原数据),如何用批处理解决?
发表于 2015-2-23 08:28:52 | 显示全部楼层

  1. @echo off&setlocal enabledelayedexpansion
  2. for %%i in (d:\数据\*.txt) do (
  3.     (for /f "usebackq delims=" %%a in ("%%i") do (
  4.         set "str=%%a"&call :split
  5.         if !n! geq 8 echo,%%a
  6.         set/a n=0
  7.     )) >%temp%\$
  8.     move /y "%temp%\$" "%%i" >nul
  9. )
  10. pause

  11. :split
  12. if not "!str!"=="" (
  13.     set "str=!str:~1!"&set/a n+=1&goto split
  14. ) else (
  15.     goto :eof
  16. )
复制代码

评分

参与人数 1技术 +1 收起 理由
思想之翼 + 1 感谢

查看全部评分

发表于 2015-2-23 11:15:27 | 显示全部楼层
回复 1# 思想之翼
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. cd /d "D:\数据"
  4. for /f "delims=" %%a in ('dir /b *.txt') do (
  5. for /f "delims=" %%b in ('type "%%a"') do (
  6. set "str=%%b"
  7. if "!str:~7,1!" == "" >>$ echo,!str!
  8. )
  9. move $ "%%a"
  10. )
  11. pause
复制代码

评分

参与人数 2技术 +2 收起 理由
慕夜蓝化 + 1 嗯嗯
思想之翼 + 1 感谢

查看全部评分

发表于 2015-2-23 11:29:53 | 显示全部楼层
这样比较省事
  1. @findstr /v "[1-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" a.txt >b.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
思想之翼 + 1 感谢

查看全部评分

发表于 2015-2-23 20:48:00 | 显示全部楼层
  1. @echo off&color f0&setlocal enabledelayedexpansion
  2. cd /d d:\数据\
  3. for /f "delims=" %%a in ('dir /b *.txt') do (
  4. (for /f "delims=" %%i in (%%a) do (
  5. set n=%%i
  6. for /l %%j in (0,1,20) do (
  7. if "!n:~%%j,1!" neq "" set /a m+=1
  8. )
  9. if !m! lss 8 echo %%i
  10. set m=0
  11. )
  12. )>$
  13. del /q /f %%a
  14. ren $ %%a
  15. )
复制代码
回复 1# 思想之翼

评分

参与人数 1技术 +1 收起 理由
思想之翼 + 1 感谢

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 16:40 , Processed in 0.020324 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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