Board logo

标题: [原创] [批处理命令一日一教学 续](47)一次只显示单屏内容:more [打印本页]

作者: Hello123World    时间: 2011-12-29 16:15     标题: [批处理命令一日一教学 续](47)一次只显示单屏内容:more

【原】[一日一教学]批处理系列帖子索引 http://bbs.bathome.net/thread-2576-1-1.html
【续】[一日一教学]批处理系列帖子索引 http://bbs.bathome.net/thread-13798-1-1.html

more命令不适合处理文本行数大于等于65535的文本
http://bbs.bathome.net/thread-20377-1-1.html#pid121367
http://bbs.bathome.net/thread-30111-1-1.html#pid148245

帮助信息:
  1. 逐屏显示输出。
  2. MORE [/E [/C] [/P] [/S] [/Tn] [+n]] < [drive:][path]filename
  3. command-name | MORE [/E [/C] [/P] [/S] [/Tn] [+n]]
  4. MORE /E [/C] [/P] [/S] [/Tn] [+n] [files]
  5.     [drive:][path]filename  指定要逐屏显示的文件。
  6.     command-name            指定要显示其输出的命令。
  7.     /E      启用扩展功能
  8.     /C      显示页面前先清除屏幕
  9.     /P      扩展 FormFeed 字符
  10.     /S      将多个空白行缩成一行
  11.     /Tn     将制表符扩展为 n 个空格(默认值为 8)
  12.             开关可以出现在 MORE 环境变量中。
  13.     +n      从第 n 行开始显示第一个文件
  14.     files   要显示的文件列表。使用空格分隔列表中的文件。
  15.             如果已启用扩展功能,则在 -- More -- 提示处 接受下列命令:
  16.     P n 显示下 n 行
  17.     S n 跳过下 n 行
  18.     F 显示下个文件
  19.     Q 退出
  20.     = 显示行号
  21.     ? 显示帮助行
  22.     <space> 显示下一页
  23.     <ret> 显示下一行
复制代码
命令概括:

more,意为“更多”,这里可以引申为“除这些外还有……”
/e,enable Expansion,意为“允许扩展“。
/c,clear,意为”清除“。
/p,expand,意为”扩展“。
/s,squeeze,意为”挤;压榨“。”挤“字已经非常形象的说明了这个参数的用途。
/t,tabs,意为”制表符“。


参数详解:

more命令就是一次显示一屏幕的内容(这里的一屏幕是指cmd窗口的屏幕,不是显示器)。

1.将指定命令的输出,逐屏显示

最常用到情况的是显示ip地址信息的时候。
例如:
  1. C:\Users\helloworld\Desktop>ipconfig /all |more
复制代码
.

结果:
  1. Windows IP 配置
  2.    主机名  . . . . . . . . . . . . . : helloworld-PC
  3.    主 DNS 后缀 . . . . . . . . . . . :
  4.    节点类型  . . . . . . . . . . . . : 混合
  5.    IP 路由已启用 . . . . . . . . . . : 否
  6.    WINS 代理已启用 . . . . . . . . . : 否
  7. PPP 适配器 宽带连接:
  8.    连接特定的 DNS 后缀 . . . . . . . :
  9.    描述. . . . . . . . . . . . . . . : 宽带连接
  10.    物理地址. . . . . . . . . . . . . :
  11.    DHCP 已启用 . . . . . . . . . . . : 否
  12.    自动配置已启用. . . . . . . . . . : 是
  13.    IPv4 地址 . . . . . . . . . . . . : 110.206.18.142(首选)
  14.    子网掩码  . . . . . . . . . . . . : 255.255.255.255
  15.    默认网关. . . . . . . . . . . . . : 0.0.0.0
  16.    DNS 服务器  . . . . . . . . . . . : 61.234.254.6
  17.                                        211.98.2.4
  18.    TCPIP 上的 NetBIOS  . . . . . . . : 已禁用
  19. 以太网适配器 本地连接:
  20. -- More  --
复制代码
.

2.逐屏显示指定文本的内容

1.txt中的内容:
  1. 逐屏显示输出。
  2. MORE [/E [/C] [/P] [/S] [/Tn] [+n]] < [drive:][path]filename
  3. command-name | MORE [/E [/C] [/P] [/S] [/Tn] [+n]]
  4. MORE /E [/C] [/P] [/S] [/Tn] [+n] [files]
  5.     [drive:][path]filename  指定要逐屏显示的文件。
  6.     command-name            指定要显示其输出的命令。
  7.     /E      启用扩展功能
  8.     /C      显示页面前先清除屏幕
  9.     /P      扩展 FormFeed 字符
  10.     /S      将多个空白行缩成一行
  11.     /Tn     将制表符扩展为 n 个空格(默认值为 8)
  12.             开关可以出现在 MORE 环境变量中。
  13.     +n      从第 n 行开始显示第一个文件
  14.     files   要显示的文件列表。使用空格分隔列表中的文件。
  15.             如果已启用扩展功能,则在 -- More -- 提示处 接受下列命令:
  16.     P n 显示下 n 行
  17.     S n 跳过下 n 行
  18.     F 显示下个文件
  19.     Q 退出
  20.     = 显示行号
  21.     ? 显示帮助行
  22.     <space> 显示下一页
  23.     <ret> 显示下一行
复制代码
.

这有两种写法。

①.直接显示。
代码:
  1. C:\Users\HELLOW~1\Desktop>more 1.txt
复制代码
.

效果:
  1. 逐屏显示输出。
  2. MORE [/E [/C] [/P] [/S] [/Tn] [+n]] < [drive:][path]filename
  3. command-name | MORE [/E [/C] [/P] [/S] [/Tn] [+n]]
  4. MORE /E [/C] [/P] [/S] [/Tn] [+n] [files]
  5.     [drive:][path]filename  指定要逐屏显示的文件。
  6.     command-name            指定要显示其输出的命令。
  7.     /E      启用扩展功能
  8.     /C      显示页面前先清除屏幕
  9.     /P      扩展 FormFeed 字符
  10.     /S      将多个空白行缩成一行
  11.     /Tn     将制表符扩展为 n 个空格(默认值为 8)
  12.             开关可以出现在 MORE 环境变量中。
  13.     +n      从第 n 行开始显示第一个文件
  14.     files   要显示的文件列表。使用空格分隔列表中的文件。
  15.             如果已启用扩展功能,则在 -- More -- 提示处 接受下列命令:
  16.     P n 显示下 n 行
  17.     S n 跳过下 n 行
  18.     F 显示下个文件
  19. -- More (88%) --
复制代码
.

②.用重定向符显示。
代码:
  1. C:\Users\HELLOW~1\Desktop>more<1.txt
复制代码
.

结果:
  1. 逐屏显示输出。
  2. MORE [/E [/C] [/P] [/S] [/Tn] [+n]] < [drive:][path]filename
  3. command-name | MORE [/E [/C] [/P] [/S] [/Tn] [+n]]
  4. MORE /E [/C] [/P] [/S] [/Tn] [+n] [files]
  5.     [drive:][path]filename  指定要逐屏显示的文件。
  6.     command-name            指定要显示其输出的命令。
  7.     /E      启用扩展功能
  8.     /C      显示页面前先清除屏幕
  9.     /P      扩展 FormFeed 字符
  10.     /S      将多个空白行缩成一行
  11.     /Tn     将制表符扩展为 n 个空格(默认值为 8)
  12.             开关可以出现在 MORE 环境变量中。
  13.     +n      从第 n 行开始显示第一个文件
  14.     files   要显示的文件列表。使用空格分隔列表中的文件。
  15.             如果已启用扩展功能,则在 -- More -- 提示处 接受下列命令:
  16.     P n 显示下 n 行
  17.     S n 跳过下 n 行
  18.     F 显示下个文件
  19. -- More  --
复制代码
.


这两种显示文本的方法,除了写法不同,就目测来说,“直接显示”会显示文本已显示的百分比(-- More (88%) --),而“重定向显示”不会显示出百分比(-- More  --)。


3.显示前先清除屏幕
代码:
  1. more /c 1.txt
复制代码
.

等效代码:
  1. cls
  2. more 1.txt
复制代码
.

没错,/c参数就相当于在more命令的前面加了一条cls命令(在提示符状态下,其实也不完全是在前加一条cls,因为/c参数还会清除more命令本身的回显)。

4.将连续的空白行缩成一行
代码:
  1. more /s 1.txt
复制代码
.

关键词:“连续的”
这个参数不是消除空白行,而是将连续的多行空白,缩成一行空白。——这中间的差别一定要弄清,不然很容易就用错命令。

5.将制表符变为指定个数的空格符

代码:
  1. more /t1 1.txt
复制代码
.

制表符就是tab键按下后产生的符号。

如果不加/t参数就会直接显示制表符的样式,加上/t并指定空格数,就会显示指定个空格。

这个参数并不常用。

6.跳过指定行

跳过头两行。

代码:
  1. more +2 1.txt
复制代码
.

效果:
  1. MORE    [/E [/C] [/P] [/S] [/Tn] [+n]] < [drive:][path]filename
  2. command-name | MORE [/E [/C] [/P] [/S] [/Tn] [+n]]
  3. MORE /E [/C] [/P] [/S] [/Tn] [+n] [files]
  4.     [drive:][path]filename  指定要逐屏显示的文件。
  5.     command-name            指定要显示其输出的命令。
  6.     /E      启用扩展功能
  7.     /C      显示页面前先清除屏幕
  8.     /P      扩展 FormFeed 字符
  9.     /S      将多个空白行缩成一行
  10.     /Tn     将制表符扩展为 n 个空格(默认值为 8)
  11.             开关可以出现在 MORE 环境变量中。
  12.     +n      从第 n 行开始显示第一个文件
  13.     files   要显示的文件列表。使用空格分隔列表中的文件。
  14.             如果已启用扩展功能,则在 -- More -- 提示处 接受下列命令:
  15.     P n 显示下 n 行
  16.     S n 跳过下 n 行
  17.     F 显示下个文件
  18.     Q 退出
  19.     = 显示行号
  20. -- More (92%) --
复制代码
.

跳过的行:
逐屏显示输出。
空行。


空行也算是一行。

7.“跳过指定行”(+n)的优先级高于/s参数。

我们知道/s 是将连续的空白行缩成一行,那么假如一个文本头中有5行(有4行为空行),而我同时用到+2(跳过头两行)和/s参数会怎样呢?

1.txt
  1. 逐屏显示输出。
  2. MORE [/E [/C] [/P] [/S] [/Tn] [+n]] < [drive:][path]filename
  3. command-name | MORE [/E [/C] [/P] [/S] [/Tn] [+n]]
  4. MORE /E [/C] [/P] [/S] [/Tn] [+n] [files]
复制代码
.

代码:
  1. more /s +2 1.txt
复制代码
.

效果:
  1. [color=Red]空行。[/color]
  2. MORE    [/E [/C] [/P] [/S] [/Tn] [+n]] < [drive:][path]filename
  3. command-name | MORE [/E [/C] [/P] [/S] [/Tn] [+n]]
  4. MORE /E [/C] [/P] [/S] [/Tn] [+n] [files]
复制代码
.

显示了1行空行,说明+2先于/s参数运行,因为如果/s参数先运行再跳过2行,那么结果就不会有空行。


8.逐屏显示多个文件。

1.txt
  1. hello
复制代码
.

2.txt
  1. world
复制代码
.

代码:
  1. more 1.txt 2.txt
复制代码
.

效果:
  1. hello
  2. world
复制代码
.

9.在显示未完成时(完成度百分比小于100%)的操作命令—— 一般用于命令提示符中
  1. P n 显示下 n 行(先输入p,然后输入0-9的数字)
  2.     S n 跳过下 n 行(同p,但不是显示而是跳过)
  3.     F 显示下个文件(用于more命令显示多个文件的情况)
  4.     Q 退出
  5.     = 显示当前显示最后一行的行号
  6.     ? 显示帮助
  7. 空格键  显示下一页
  8. 回车键  显示下一行
复制代码
.

扩展阅读:

无。
作者: Realjack    时间: 2012-1-5 20:37

太强悍了,拜读中
作者: clonecd    时间: 2012-5-16 14:24

MORE有这么多的参数,受教了。
作者: 0wlh0    时间: 2012-11-6 10:51

之前对这个不了解,学习了!
作者: wrsbj    时间: 2015-1-2 19:09

不错不错真心很喜欢




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2