批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程
[批处理文件精品]批处理版照片整理器[批处理文件精品]纯批处理备份&还原驱动在线第三方下载
返回列表 发帖

[文本处理] [已解决]批处理怎样在txt文本内批量删除一行内只有一个字符及两字符

本帖最后由 shunvcun 于 2019-8-13 14:45 编辑


如上图,有些行只有一个文字,有些行只有两个数字或者两字母,请问各位叔叔们如何将全部只有一个文字的,两个数字的,两个字母,或者一个数字一个字母组成的全部删除
附件: 您需要登录才可以下载或查看附件。没有帐号?注册
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

没有空格的话判断小于二的舍弃即可。

TOP

回复 2# 窄口牛
嗯没有空格,请问大神代码怎么写啊

TOP

你搜搜怎么统计获取到的字符个数,我也不会写,只是知道这个思路应该行得通。

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f %%i in ('type "用户名.txt"') do (
  4.     for /f "skip=1 delims=:" %%a in ('^(echo "%%i"^&echo.^)^|findstr /o ".*"') do (
  5.         set /a StrLen=%%a-5
  6.     )
  7.     if !StrLen! gtr 2 (
  8.         echo,%%i
  9.     )
  10. ))>"结果.txt"
复制代码
【扫描二维码捐助论坛的朋友请留言注明论坛账号】http://bbs.bathome.net/thread-10403-1-1.html
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

TOP

for /f "delims=" %%i in ('Type "UserName.txt"')do (
set "#=%%i"&&set "$="&&if /i not "!#:~2!"=="" set "$=true"
if defined $ (
  echo,写入:%%i
)else (
  echo,过滤:%%i
)
)
这么好的论坛你上哪找
注:请遵守互联网信息安全,勿用于非法用途,伸手党直接去某度

TOP

回复 5# Batcher


    感谢祝贵站办得越来越好,给我们办公小白带来了办公便利

TOP

回复 6# /zhqsystem/zhq


   这个运行速度非常快但是没有效果

TOP

回复 6# /zhqsystem/zhq


哪部分代码可以实现删除1个汉字的行且保留2个汉字的行?
【扫描二维码捐助论坛的朋友请留言注明论坛账号】http://bbs.bathome.net/thread-10403-1-1.html
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

TOP

回复 9# Batcher
变量判断那行,标题是保留3个字符的行过滤2个及其以下的行
这么好的论坛你上哪找
注:请遵守互联网信息安全,勿用于非法用途,伸手党直接去某度

TOP

回复 10# /zhqsystem/zhq


    根据截图以及描述,那不是楼主真正需要的。
【扫描二维码捐助论坛的朋友请留言注明论坛账号】http://bbs.bathome.net/thread-10403-1-1.html
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

TOP

这个比管理的慢好多,for调用次数太多了满足俩就调用1406次.....
  1. @Echo Off&Color 0e
  2. SetLocal EnableDelayedExpansion
  3. call:1
  4. for /f "delims=" %%i in ('Type "UserName.txt"')do (
  5. set "全局字符=%%i"
  6. set "全局字符后=!全局字符:~2!"
  7. set "全局字符前=!全局字符:~0,2!"
  8. set "始终保留="
  9. set "过滤数字和字母="
  10. set "过滤非数字和字母="
  11. if not "!全局字符:~2,1!"=="" set "始终保留=true"
  12. if "!全局字符:~2,1!"=="" for /l %%n in (1,1,!n!)do if defined data%%n (
  13.   if /i "!全局字符:~0,1!"=="!全局字符前!" set "过滤非数字和字母=true"
  14.   if /i "!全局字符:~0,2!"=="!data%%n!" set "过滤数字和字母=true"
  15. )
  16. rem 下一行用于回显值可删除
  17. rem call:0
  18. if defined 始终保留 (
  19.   echo,写入:%%i
  20. )else (
  21.   if not defined 过滤非数字和字母 if not defined 过滤数字和字母 echo,写入:%%i
  22. )
  23. )
  24. pause
  25. goto:eof
  26. :0
  27. echo/
  28. echo,始终保留 !始终保留!
  29. echo,过滤数字和字母 !过滤数字和字母!
  30. echo,过滤非数字和字母 !过滤非数字和字母!
  31. echo,原始文件 !全局字符!
  32. goto:eof
  33. :1
  34. set "n=0"
  35. for /l %%n in (0,1,9)do for %%l in (a b c d e f g h i j k l m n o p q r s t u v w s x y z)do set/a "n+=1"&&set "data!n!=%%n%%l"&&set/a "n+=1"&&set "data!n!=%%l%%n"
  36. for /l %%n in (0,1,9)do set/a "n+=1"&&set "data!n!=%%n"&&for /l %%l in (0,1,9)do set/a "n+=1"&&set "data!n!=%%l%%n"
  37. for %%l in (a b c d e f g h i j k l m n o p q r s t u v w s x y z)do set/a "n+=1"&&set "data!n!=%%l"&&for %%n in (a b c d e f g h i j k l m n o p q r s t u v w s x y z)do set/a "n+=1"&&set "data!n!=%%l%%n"
  38. goto:eof
复制代码
这么好的论坛你上哪找
注:请遵守互联网信息安全,勿用于非法用途,伸手党直接去某度

TOP

返回列表