中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-03 07:39
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请问我怎样可以通过p处理来计算出文本内有多少行啊 查看 1,010 回复 14
楼 主 请问我怎样可以通过p处理来计算出文本内有多少行啊 发表于 2007-02-07 03:09 ·  中国 吉林 长春 电信
初级用户
积分 39
发帖 16
注册 2007-01-30 05:29
19年会员
UID 78088
性别 男
状态 离线
请问我怎样可以通过p处理来计算出文本内有多少行啊?通过这个总行数产生一个随机数,显示随机的一行。

具体的语句需要怎样写啊……
2 发表于 2007-02-07 03:35 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
用findstr /n 就可以知道一个文件中有多少行,详细内容可以在命令行输入findstr /?查看。
要看文件test.txt中有多少行,用for语句的话可以这样:

@echo off 
for /f "tokens=1 delims=:" %%i in ('findstr /n .* test.txt') do set num=%%i
echo 文件test.txt中共有%num%行
pause>nul
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
3 发表于 2007-02-07 04:16 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  合并出了差错,楼主是theoldman而非ccwan,请两位原谅,请各位将就一下。
  ——————————————————————————
  楼层错位的问题已经被站长修正了,请下面的各位及时对回帖内容做相应的修改。

[ Last edited by namejm on 2007-2-6 at 04:11 PM ]
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
4 发表于 2007-02-07 04:17 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
版主客气了,其实做楼主也挺,只是是否积相应的4分而非2呢?^_^

[ Last edited by ccwan on 2007-2-7 at 04:22 AM ]
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
5 发表于 2007-02-07 04:22 ·  中国 北京 东城区 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
19年会员
UID 63324
性别 男
状态 离线
哈哈……有意思~:)))

ccwan兄说什么也得去买张彩票得个500万~:)

用ccwan兄的注册信息选的号,嘿嘿……
07 06 09 23 10 12 01
07 06 09 23 10 12 04

[ Last edited by redtek on 2007-2-6 at 03:25 PM ]
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
6 发表于 2007-02-07 04:24 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
谢谢redtek兄指点,看来这次500万是一定到手了^_^

到手请大家吃饭!
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
7 发表于 2007-02-07 04:30 ·  中国 吉林 长春 电信
初级用户
积分 39
发帖 16
注册 2007-01-30 05:29
19年会员
UID 78088
性别 男
状态 离线
请问ccwan如果我想显示第2行,而这个2是个变量,具体的格式应该是什么呢?
(请原谅偶这个菜鸟问这么简单的问题,实在没找到应该怎么写T_T~~)

[ Last edited by namejm on 2007-2-6 at 03:52 PM ]
8 发表于 2007-02-07 04:42 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  演示代码如下:

@echo off
set num=
set /p num= 请输入要显示内容的行号:
set /a num-=1
for /f "delims= eol=" %%i in ('more +%num% test.txt') do echo "%%i"&goto end

:end
pause

  还可以使用 findstr /n,或者通过计数器来显示。
本帖最近评分记录 (共 2 条) 点击查看详情
评分人分数时间
ccwan +5 2007-02-07 04:43
theoldman +2 2007-02-07 04:51
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
9 发表于 2007-02-07 04:50 ·  中国 吉林 长春 电信
初级用户
积分 39
发帖 16
注册 2007-01-30 05:29
19年会员
UID 78088
性别 男
状态 离线
请问版主,这个more的作用是什么呢?
10 发表于 2007-02-07 05:00 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
多在CMD窗口用more/?、命令 /?
11 发表于 2007-02-07 05:01 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
依楼上说得做就是了。

[ Last edited by ccwan on 2007-2-7 at 05:06 AM ]
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
12 发表于 2007-02-07 05:05 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
ccwan,你 4 楼的帖子看着费眼神啊
13 发表于 2007-02-07 05:09 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
对不住大家,那个起始颜色和结束颜色调得太浅了。可以选中它使它反白就清楚了。

另外建议楼主多多看看基本命令帮助。
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
14 发表于 2007-02-07 05:24 ·  中国 甘肃 兰州 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
sed -n $= life
15 发表于 2007-02-07 05:30 ·  中国 吉林 长春 电信
初级用户
积分 39
发帖 16
注册 2007-01-30 05:29
19年会员
UID 78088
性别 男
状态 离线
谢谢上面的热心人s ^_^

看不懂再来骚扰大家。
论坛跳转: