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

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

[复制链接]
发表于 2019-8-12 20:05:40 | 显示全部楼层 |阅读模式
如上图,有些行只有一个文字,有些行只有两个数字或者两字母,请问各位叔叔们如何将全部只有一个文字的,两个数字的,两个字母,或者一个数字一个字母组成的全部删除

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2019-8-12 21:30:03 | 显示全部楼层
没有空格的话判断小于二的舍弃即可。
 楼主| 发表于 2019-8-13 04:32:44 | 显示全部楼层
回复 2# 窄口牛
嗯没有空格,请问大神代码怎么写啊
发表于 2019-8-13 07:32:58 | 显示全部楼层
你搜搜怎么统计获取到的字符个数,我也不会写,只是知道这个思路应该行得通。
发表于 2019-8-13 08:40:48 | 显示全部楼层
  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"
复制代码
发表于 2019-8-13 14:12:20 | 显示全部楼层
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
)
)
 楼主| 发表于 2019-8-13 14:43:15 | 显示全部楼层
回复 5# Batcher


    感谢祝贵站办得越来越好,给我们办公小白带来了办公便利
 楼主| 发表于 2019-8-13 14:59:44 | 显示全部楼层
回复 6# /zhqsystem/zhq


   这个运行速度非常快但是没有效果
发表于 2019-8-13 15:17:16 | 显示全部楼层
回复 6# /zhqsystem/zhq


哪部分代码可以实现删除1个汉字的行且保留2个汉字的行?
发表于 2019-8-13 20:03:13 | 显示全部楼层
回复 9# Batcher
变量判断那行,标题是保留3个字符的行过滤2个及其以下的行
发表于 2019-8-13 20:19:26 | 显示全部楼层
回复 10# /zhqsystem/zhq


    根据截图以及描述,那不是楼主真正需要的。
发表于 2019-8-13 23:47:18 | 显示全部楼层
这个比管理的慢好多,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
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-21 04:30 , Processed in 0.032712 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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