中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [讨论]判定文件中某行是否空行(非windows文件)
作者:
标题: [讨论]判定文件中某行是否空行(非windows文件) 上一主题 | 下一主题
gahoo
初级用户





积分 45
发帖 19
注册 2007-3-8
状态 离线
『楼 主』:  [讨论]判定文件中某行是否空行(非windows文件)

能否用批处理实现判定文件中某一行是否是空行?感觉很困难啊。大家一起讨论一下。


请看4楼

[ Last edited by gahoo on 2008-5-16 at 12:52 PM ]

2008-5-16 01:48
查看资料  发短消息 网志   编辑帖子  回复  引用回复
gahoo
初级用户





积分 45
发帖 19
注册 2007-3-8
状态 离线
『第 2 楼』:  

比如文件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 ]

2008-5-16 01:48
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 3 楼』:  


findstr /n "^$" text.txt


2008-5-16 01:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
gahoo
初级用户





积分 45
发帖 19
注册 2007-3-8
状态 离线
『第 4 楼』:  

我明白为什么我没弄出来了,那个文件是其他操作系统下的,回车符号与windows不同,在记事本里面看着就是黑框框,findstr /n "^$" test.txt无法处理这种情况。
大家再研究一下看


请大家下载这个文件再看看
test.txt文件

2008-5-16 12:43
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 5 楼』:  

如果是Unix系统中的文件,可以先在Unix运行:
unix2dos test.txt

然后在放到windows里面就行了



2008-5-16 13:41
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bg5hfc
新手上路





积分 4
发帖 2
注册 2008-4-18
状态 离线
『第 6 楼』:  



  Quote:
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! ))


2008-5-16 15:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
gahoo
初级用户





积分 45
发帖 19
注册 2007-3-8
状态 离线
『第 7 楼』:  



  Quote:
Originally posted by HAT at 2008-5-16 01:41 PM:
如果是Unix系统中的文件,可以先在Unix运行:
unix2dos test.txt

然后在放到windows里面就行了

目的就是只使用批处理解决这个问题

2008-5-16 17:41
查看资料  发短消息 网志   编辑帖子  回复  引用回复
gahoo
初级用户





积分 45
发帖 19
注册 2007-3-8
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by bg5hfc at 2008-5-16 03:04 PM:


试试这段

[code]
@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 ...

测试可行,不错

2008-5-16 17:43
查看资料  发短消息 网志   编辑帖子  回复  引用回复
gahoo
初级用户





积分 45
发帖 19
注册 2007-3-8
状态 离线
『第 9 楼』:  

我发现非常简单……只要
findstr /n /v "." 413.txt


2008-5-16 17:48
查看资料  发短消息 网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 10 楼』:  

这个以前讨论过:
http://www.cn-dos.net/forum/viewthread.php?tid=37313



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-5-17 18:29
查看资料  发短消息 网志   编辑帖子  回复  引用回复
gahoo
初级用户





积分 45
发帖 19
注册 2007-3-8
状态 离线
『第 11 楼』:  

咦?怎么搜索没注意看到?

2008-5-18 00:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复
gahoo
初级用户





积分 45
发帖 19
注册 2007-3-8
状态 离线
『第 12 楼』:  

突然发现

find /v /c "" 413.txt
结果为什么是11而不是12
findstr .* 413.txt | find /v /c ""
结果就是12

2008-5-18 00:12
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: