中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 怎么显示一文本的行数(总数)
« [1] [2] »
作者:
标题: 怎么显示一文本的行数(总数) 上一主题 | 下一主题
scriptor
银牌会员




积分 1187
发帖 555
注册 2006-12-21
状态 离线
『楼 主』:  怎么显示一文本的行数(总数)

如题。

2007-2-26 09:07
查看资料  发短消息 网志   编辑帖子  回复  引用回复
scriptor
银牌会员




积分 1187
发帖 555
注册 2006-12-21
状态 离线
『第 2 楼』:  

for /f "delims=" %%i in (l.txt) do (set/a num+=1)

echo len=%num%

但是以行中若是回车符号,结果就不对,怎么改,谢谢!

2007-2-26 09:31
查看资料  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 3 楼』:  

看你要不要空行和开头是;的行了

2007-2-26 09:48
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
scriptor
银牌会员




积分 1187
发帖 555
注册 2006-12-21
状态 离线
『第 4 楼』:  

都要
只要一行中有字符,不管是什么字符

包括只有一个回车符号的行

[ Last edited by scriptor on 2007-2-25 at 09:42 PM ]

2007-2-26 09:57
查看资料  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by scriptor at 2007-2-26 09:57:
都要
只要一行中有字符,不管是什么字符

包括只有一个回车符号的行

[ Last edited by scriptor on 2007-2-25 at 09:42 PM ]

那还是用sed好了 sed -n $= life
因为当文件中有空行时用findstr /N . life还是会忽略空行的

2007-2-26 11:00
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
scriptor
银牌会员




积分 1187
发帖 555
注册 2006-12-21
状态 离线
『第 6 楼』:  

我的l.txt的内容是:
w

e
我的bat文件是:
@echo off
for /f "delims=" %%i in ('find /v /i /n "" l.txt') do (set/a num+=1)
echo len=%num%
pause>nul


结果为4,但是只有三行啊??
难道要这样减去1才对?这是什么道理?
还有别的方法不?

2007-2-26 11:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 7 楼』:  

脚本吧

2007-2-26 11:45
查看资料  发短消息 网志   编辑帖子  回复  引用回复
scriptor
银牌会员




积分 1187
发帖 555
注册 2006-12-21
状态 离线
『第 8 楼』:  

你是说用vbs或js?

那个当然可以。可是我要的是bat的

2007-2-26 11:53
查看资料  发短消息 网志   编辑帖子  回复  引用回复
xycoordinate
中级用户




积分 493
发帖 228
注册 2007-2-16
来自 安徽
状态 离线
『第 9 楼』:  

@echo off
setlocal enabledelayedexpansion
set i=0
for /f %%a in (1.txt) do (
  set /a i+=1
  echo !i! %%a >>1new.txt
)

不能包括空行!

[ Last edited by xycoordinate on 2007-2-26 at 10:10 AM ]

2007-2-26 23:07
查看资料  发送邮件  发短消息 网志  OICQ (226308607)  编辑帖子  回复  引用回复
qjbm
初级用户





积分 125
发帖 44
注册 2007-1-24
状态 离线
『第 10 楼』:  

scriptor兄
给你个变态方法!!哈哈利用一下SET /A的小BUG
@ECHO %DBG% OFF & SETLOCAL ENABLEDELAYEDEXPANSION

FOR /F %%i IN ('findstr /n . l.txt') DO SET /A LEN=%%i 2>nul
ECHO %LEN%


   此帖被 +9 点积分      点击查看详情   
评分人:【 zh159 分数: +3  时间:2007-2-27 00:03
评分人:【 xycoordinate 分数: +2  时间:2007-5-5 10:48
评分人:【 scriptor 分数: +4  时间:2007-9-9 13:17


2007-2-26 23:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




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


  可以处理空行及包含其它字符的行:
@echo off
for /f "tokens=1 delims=:" %%a in ('findstr /n .* 1.txt') do set a=%%a
echo The length of file 1.txt is %a%
pause&exit/b0


   此帖被 +11 点积分        点击查看详情   
评分人:【 xycoordinate 分数: +4  时间:2007-5-5 10:46
评分人:【 scriptor 分数: +6  时间:2007-9-9 13:17
评分人:【 dgoogd 分数: +1  时间:2008-8-19 08:30


2007-2-27 00:01
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 12 楼』:  

10 楼的效果和:
@echo off
FOR /F "delims=:" %%i IN ('findstr /n . a.txt') DO SET LEN=%%i
ECHO %LEN%
pause
是一样的,利用了set/a去除了数字后面的“:”字符

SET LEN=%%i:设置LEN等于findstr /n显示的行数(不用计数),包含所有行

[ Last edited by zh159 on 2007-2-26 at 11:04 AM ]

2007-2-27 00:02
查看资料  发短消息 网志   编辑帖子  回复  引用回复
xycoordinate
中级用户




积分 493
发帖 228
注册 2007-2-16
来自 安徽
状态 离线
『第 13 楼』:  



  Quote:
Originally posted by zh159 at 2007-2-27 00:02:
10 楼的效果和:
@echo off
FOR /F "delims=:" %%i IN ('findstr /n . a.txt') DO SET LEN=%%i
ECHO %LEN%
pause
是一样的,利用了set/a去除了数字后面的“:”字符

SET LEN=%%i:设置LEN等于findstr /n显示的行数(不用计数),包含所有行

10楼的,主要是用了2>nul,妙!!!

[ Last edited by xycoordinate on 2007-5-5 at 10:49 AM ]

2007-5-5 10:47
查看资料  发送邮件  发短消息 网志  OICQ (226308607)  编辑帖子  回复  引用回复
hizebra
新手上路





积分 19
发帖 5
注册 2007-10-10
状态 离线
『第 14 楼』:  

look!
<a href="http://www.cn-dos.net/forum/viewthread.php?tid=33878&fpage=1&highlight=%E8%A1%8C%E6%95%B0"  target="_blank">批处理中如何判断一个文本中的行数</a>

2007-12-24 01:10
查看资料  发送邮件  发短消息 网志  OICQ (9425937)  编辑帖子  回复  引用回复
ZJHJ
高级用户





积分 609
发帖 374
注册 2006-8-2
状态 离线
『第 15 楼』:  

没明白?为什么速度比
find /v /c ""  1.txt>cs.txt
for /f "tokens=2 delims=:" %%i in (cs.txt) do @echo %%i
慢很很多呢??

2007-12-24 09:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: