标题: [文本处理] [已解决]批处理怎样在txt文本内批量删除一行内只有一个字符及两字符 [打印本页]
作者: shunvcun 时间: 2019-8-12 20:05 标题: [已解决]批处理怎样在txt文本内批量删除一行内只有一个字符及两字符
如上图,有些行只有一个文字,有些行只有两个数字或者两字母,请问各位叔叔们如何将全部只有一个文字的,两个数字的,两个字母,或者一个数字一个字母组成的全部删除
作者: 窄口牛 时间: 2019-8-12 21:30
没有空格的话判断小于二的舍弃即可。
作者: shunvcun 时间: 2019-8-13 04:32
回复 2# 窄口牛
嗯没有空格,请问大神代码怎么写啊
作者: 窄口牛 时间: 2019-8-13 07:32
你搜搜怎么统计获取到的字符个数,我也不会写,只是知道这个思路应该行得通。
作者: Batcher 时间: 2019-8-13 08:40
- @echo off
- setlocal enabledelayedexpansion
- (for /f %%i in ('type "用户名.txt"') do (
- for /f "skip=1 delims=:" %%a in ('^(echo "%%i"^&echo.^)^|findstr /o ".*"') do (
- set /a StrLen=%%a-5
- )
- if !StrLen! gtr 2 (
- echo,%%i
- )
- ))>"结果.txt"
复制代码
作者: /zhqsystem/zhq 时间: 2019-8-13 14:12
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
)
)
作者: shunvcun 时间: 2019-8-13 14:43
回复 5# Batcher
感谢祝贵站办得越来越好,给我们办公小白带来了办公便利
作者: shunvcun 时间: 2019-8-13 14:59
回复 6# /zhqsystem/zhq
这个运行速度非常快但是没有效果
作者: Batcher 时间: 2019-8-13 15:17
回复 6# /zhqsystem/zhq
哪部分代码可以实现删除1个汉字的行且保留2个汉字的行?
作者: /zhqsystem/zhq 时间: 2019-8-13 20:03
回复 9# Batcher
变量判断那行,标题是保留3个字符的行过滤2个及其以下的行
作者: Batcher 时间: 2019-8-13 20:19
回复 10# /zhqsystem/zhq
根据截图以及描述,那不是楼主真正需要的。
作者: /zhqsystem/zhq 时间: 2019-8-13 23:47
这个比管理的慢好多,for调用次数太多了满足俩就调用1406次.....- @Echo Off&Color 0e
- SetLocal EnableDelayedExpansion
- call:1
- for /f "delims=" %%i in ('Type "UserName.txt"')do (
- set "全局字符=%%i"
- set "全局字符后=!全局字符:~2!"
- set "全局字符前=!全局字符:~0,2!"
- set "始终保留="
- set "过滤数字和字母="
- set "过滤非数字和字母="
- if not "!全局字符:~2,1!"=="" set "始终保留=true"
- if "!全局字符:~2,1!"=="" for /l %%n in (1,1,!n!)do if defined data%%n (
- if /i "!全局字符:~0,1!"=="!全局字符前!" set "过滤非数字和字母=true"
- if /i "!全局字符:~0,2!"=="!data%%n!" set "过滤数字和字母=true"
- )
- rem 下一行用于回显值可删除
- rem call:0
- if defined 始终保留 (
- echo,写入:%%i
- )else (
- if not defined 过滤非数字和字母 if not defined 过滤数字和字母 echo,写入:%%i
- )
- )
- pause
- goto:eof
- :0
- echo/
- echo,始终保留 !始终保留!
- echo,过滤数字和字母 !过滤数字和字母!
- echo,过滤非数字和字母 !过滤非数字和字母!
- echo,原始文件 !全局字符!
- goto:eof
- :1
- set "n=0"
- 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"
- 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"
- 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"
- goto:eof
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |