中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]能否擦除显示过的内容?
作者:
标题: [求助]能否擦除显示过的内容? 上一主题 | 下一主题
brglng
银牌会员

永遠的DOS~~~



积分 1200
发帖 466
注册 2005-2-1
来自 上海
状态 离线
『楼 主』:  [求助]能否擦除显示过的内容?

比如我在批处理中使用了一个pause命令,屏幕上显示“按任意键继续”,那能否在执行完pause之后将“按任意键继续”的字样擦除?



32位才是DOS未来的希望
个人网志:http://sololand.moe
2005-8-31 12:24
查看资料  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 2 楼』:  

cls



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2005-8-31 14:34
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
brglng
银牌会员

永遠的DOS~~~



积分 1200
发帖 466
注册 2005-2-1
来自 上海
状态 离线
『第 3 楼』:  

我不想清屏……
其实我只是想显示一段文字,在显示过程中每到满屏就提示按任意键继续,按后不留下提示信息,除了把文字内容写入一个文件再用more以外,不知还有没有别的方法可以不写入文件?



32位才是DOS未来的希望
个人网志:http://sololand.moe
2005-8-31 14:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
chenhui530
高级用户





积分 772
发帖 273
注册 2004-10-23
状态 离线
『第 4 楼』:  

使用pause>nul



http://www.msfans.net/bbs/
2005-8-31 15:15
查看资料  发送邮件  发短消息 网志  OICQ (77740821)  编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 5 楼』:  

关键他还说要按任意键继续这个提示。比较难,除非自己写程序。



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2005-8-31 15:39
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
JonePeng
金牌会员

D◎$ Fαп


积分 4562
发帖 1883
注册 2004-1-19
来自 广东广州
状态 离线
『第 6 楼』:  

用MSDOS 7.1启动盘里面的Writext程序就可以把那个提示“擦掉”。Writext 可以向屏幕任意位置输出字符串,经过测试,Writext好像不能输出空格字符,但可以用黑色字符来遮盖那个提示:

...
pause
writext -r 2- 1 -f0 "Press any key to continue..."
...



----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
  
2005-8-31 16:20
查看资料  发送邮件  发短消息 网志  OICQ (373343541)  编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 7 楼』:  

是的,直接编程写显示的缓冲区应该是可以的。



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2005-8-31 17:44
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
brglng
银牌会员

永遠的DOS~~~



积分 1200
发帖 466
注册 2005-2-1
来自 上海
状态 离线
『第 8 楼』:  

如果在2K/XP下有什么办法吗?



32位才是DOS未来的希望
个人网志:http://sololand.moe
2005-9-2 16:36
查看资料  发短消息 网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 9 楼』:  

Re brglng:

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

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

      除非你的想法是保留上一屏的全部或部分内容,而仅删除pause信息,那么,可以在 2000/XP 下用 ANSI.SYS 提供的光标置位功能(ESC[行号;列号H),定位到pause信息行;然后与JonePeng兄的方案一样,写上一行空格或黑色字符(应该是指ASCII码值为256(0xFF)的字符);或者,也可以定位后直接输出新文本的内容,将自动覆盖pause信息。



※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2005-9-2 17:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
brglng
银牌会员

永遠的DOS~~~



积分 1200
发帖 466
注册 2005-2-1
来自 上海
状态 离线
『第 10 楼』:  

那还要用ANSI.SYS。纯粹在批处理中有什么办法吗?



32位才是DOS未来的希望
个人网志:http://sololand.moe
2005-9-2 17:10
查看资料  发短消息 网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 11 楼』:  

Re brglng:

      你的要求未免太苛刻了些!这样的话,可以参照以下的示意代码:
:: Display.bat - Display text with pause
:: Will Sort - 17:08 2005-9-2 - CMD@WinXP
@echo off & setlocal
:display
cls
echo messages of screen 1 ...
if "%scr1%"=="" pause & set scr1=pass & goto display
echo messages of screen 2 ...
if "%scr2%"=="" pause & set scr2=pass & goto display
echo messages of screen 3 ...
if "%scr3%"=="" pause & set scr3=pass & goto display




※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2005-9-2 17:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: