楼 主
[讨论]判定文件中某行是否空行(非windows文件)
发表于 2008-05-16 01:48 · 中国 重庆 南岸区 电信
初级用户
★
积分 45 发帖 19 注册 2007-03-08 02:14 19年会员 UID 81032 性别 男
状态 离线
能否用批处理实现判定文件中某一行是否是空行?感觉很困难啊。大家一起讨论一下。
请看4楼
[ Last edited by gahoo on 2008-5-16 at 12:52 PM ]
第 2 楼
发表于 2008-05-16 01:48 · 中国 重庆 南岸区 电信
初级用户
★
积分 45 发帖 19 注册 2007-03-08 02:14 19年会员 UID 81032 性别 男
状态 离线
比如文件test.txt中
test.txt----------------
asdfsdf
fewfwekr;
werweori
weoriwejr
rweirjower
woeirjowe
wopeirjowerjo
---------------------------
怎么判断第3、5、9、10、12、13行是空行
[ Last edited by gahoo on 2008-5-16 at 01:50 AM ]
第 3 楼
发表于 2008-05-16 01:55 · 中国 湖北 武汉 联通
版主
★★★★★
积分 11,386 发帖 4,938 注册 2006-07-23 17:10 19年会员 UID 59080
状态 离线
第 4 楼
发表于 2008-05-16 12:43 · 中国 重庆 南岸区 电信
初级用户
★
积分 45 发帖 19 注册 2007-03-08 02:14 19年会员 UID 81032 性别 男
状态 离线
我明白为什么我没弄出来了,那个文件是其他操作系统下的,回车符号与windows不同,在记事本里面看着就是黑框框,findstr /n "^$" test.txt无法处理这种情况。
大家再研究一下看
请大家下载这个文件再看看
test.txt文件
第 5 楼
发表于 2008-05-16 13:41 · 中国 上海 联通
版主
★★★★★
积分 9,023 发帖 5,017 注册 2007-05-31 19:39 19年会员 UID 89899 性别 男
状态 离线
如果是Unix系统中的文件,可以先在Unix运行:
unix2dos test.txt
然后在放到windows里面就行了
第 6 楼
发表于 2008-05-16 15:04 · 中国 浙江 杭州 电信
新手上路
★
积分 4 发帖 2 注册 2008-04-18 16:03 18年会员 UID 116254 性别 男
状态 离线
Originally posted by gahoo at 2008-5-16 12:43 PM:
我明白为什么我没弄出来了,那个文件是其他操作系统下的,回车符号与windows不同,在记事本里面看着就是黑框框,findstr /n "^$" test.txt无法处 ...
试试这段
@ECHO OFF
FOR /f "tokens=1* delims=:" %%i IN ('findstr /n .* 413.txt') DO (
ECHO.%%j | Findstr /i "^.$" > NUL
IF NOT ERRORLEVEL 1 ( ECHO line %%i is empty! ))
第 7 楼
发表于 2008-05-16 17:41 · 中国 重庆 南岸区 电信
初级用户
★
积分 45 发帖 19 注册 2007-03-08 02:14 19年会员 UID 81032 性别 男
状态 离线
Originally posted by HAT at 2008-5-16 01:41 PM:
如果是Unix系统中的文件,可以先在Unix运行:
unix2dos test.txt
然后在放到windows里面就行了
目的就是只使用批处理解决这个问题
第 8 楼
发表于 2008-05-16 17:43 · 中国 重庆 南岸区 电信
初级用户
★
积分 45 发帖 19 注册 2007-03-08 02:14 19年会员 UID 81032 性别 男
状态 离线
Originally posted by bg5hfc at 2008-5-16 03:04 PM:
试试这段
@ECHO OFF
FOR /f "tokens=1* delims=:" %%i IN ('findstr /n .* 413.txt') DO (
ECHO.%%j | Findstr /i "^.$" > NUL
IF NOT ERRORLEVEL 1 ( ECHO li ...
测试可行,不错
第 9 楼
发表于 2008-05-16 17:48 · 中国 重庆 南岸区 电信
初级用户
★
积分 45 发帖 19 注册 2007-03-08 02:14 19年会员 UID 81032 性别 男
状态 离线
我发现非常简单……只要
findstr /n /v "." 413.txt
第 10 楼
发表于 2008-05-17 18:29 · 中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278 发帖 1,020 注册 2007-11-19 13:34 18年会员 UID 103127 性别 男
状态 离线
山外有山,人外有人;低调做人,努力做事。
进入网盘(各种工具) ~~
空间 ~~
cmd学习
第 11 楼
发表于 2008-05-18 00:03 · 中国 重庆 电信
初级用户
★
积分 45 发帖 19 注册 2007-03-08 02:14 19年会员 UID 81032 性别 男
状态 离线
第 12 楼
发表于 2008-05-18 00:12 · 中国 重庆 电信
初级用户
★
积分 45 发帖 19 注册 2007-03-08 02:14 19年会员 UID 81032 性别 男
状态 离线
突然发现
find /v /c "" 413.txt
结果为什么是11而不是12
findstr .* 413.txt | find /v /c ""
结果就是12
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正