中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-23 14:38
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,273 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]能否擦除显示过的内容?
可打印版本  2,341 / 10
第1楼 brglng 发表于 2005-08-31 12:24
银牌会员 发帖 466 积分 1,200 来自 上海
[求助]能否擦除显示过的内容?
比如我在批处理中使用了一个pause命令,屏幕上显示“按任意键继续”,那能否在执行完pause之后将“按任意键继续”的字样擦除?
第2楼 Climbing 发表于 2005-08-31 14:34
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
cls
第3楼 brglng 发表于 2005-08-31 14:58
银牌会员 发帖 466 积分 1,200 来自 上海
我不想清屏……
其实我只是想显示一段文字,在显示过程中每到满屏就提示按任意键继续,按后不留下提示信息,除了把文字内容写入一个文件再用more以外,不知还有没有别的方法可以不写入文件?
第4楼 chenhui530 发表于 2005-08-31 15:15
高级用户 发帖 273 积分 772
使用pause>nul
第5楼 Climbing 发表于 2005-08-31 15:39
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
关键他还说要按任意键继续这个提示。比较难,除非自己写程序。
第6楼 JonePeng 发表于 2005-08-31 16:20
金牌会员 发帖 1,883 积分 4,562 来自 广东广州
用MSDOS 7.1启动盘里面的Writext程序就可以把那个提示“擦掉”。Writext 可以向屏幕任意位置输出字符串,经过测试,Writext好像不能输出空格字符,但可以用黑色字符来遮盖那个提示:

...
pause
writext -r 2- 1 -f0 "Press any key to continue..."
...
第7楼 Climbing 发表于 2005-08-31 17:44
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
是的,直接编程写显示的缓冲区应该是可以的。
第8楼 brglng 发表于 2005-09-02 16:36
银牌会员 发帖 466 积分 1,200 来自 上海
如果在2K/XP下有什么办法吗?
第9楼 willsort 发表于 2005-09-02 17:06
元老会员 发帖 1,512 积分 4,432
Re brglng:

仍然不太明白你想擦除显示的目的何在。根据你在3楼的需求,是否可以按以下方案进行。

首先用cls清屏,然后用多个Echo显示一屏文字,然后用pause暂停;之后的第二屏内容,仍然可以用cls+echo+pause的组合,此时它不会显示上一屏的pause信息。

除非你的想法是保留上一屏的全部或部分内容,而仅删除pause信息,那么,可以在 2000/XP 下用 ANSI.SYS 提供的光标置位功能(ESC[行号;列号H),定位到pause信息行;然后与JonePeng兄的方案一样,写上一行空格或黑色字符(应该是指ASCII码值为256(0xFF)的字符);或者,也可以定位后直接输出新文本的内容,将自动覆盖pause信息。
第10楼 brglng 发表于 2005-09-02 17:10
银牌会员 发帖 466 积分 1,200 来自 上海
那还要用ANSI.SYS。纯粹在批处理中有什么办法吗?
第11楼 willsort 发表于 2005-09-02 17:22
元老会员 发帖 1,512 积分 4,432
Re brglng:

你的要求未免太苛刻了些!这样的话,可以参照以下的示意代码:

[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023