Board logo

标题: 敢向dos高手挑战的一个问题 [打印本页]

作者: xy2fengye     时间: 2005-8-13 15:14    标题: 敢向dos高手挑战的一个问题

如何在进入edit,并且书写程序完毕后自动保存退出edit到dos的程序
简单的说,在dos环境中
c:\edit 1.bat
  写入要写的程序(已经在edit中了)
按alt+f-x退出
一次性用批处理完成不需要人工参与。相当于一个自动演示
作者: GOTOmsdos     时间: 2005-8-13 16:40
看一下,EDIT有没有命令行参数,
再试试 > 和< 这些定向符.
感觉不是大问题..
作者: xy2fengye     时间: 2005-8-13 16:45
#83我要的就是这个步骤,必须进入edit界面中。不过还是谢谢你
作者: Climbing     时间: 2005-8-13 18:29
感觉比较难。
作者: GOTOmsdos     时间: 2005-8-13 18:57
刚才看清你的意思了, 这不可能吧..
因为EDIT一定要询问保存的,不保存就退出,他要弹出框的,.
不管你以何种方式打开EDIT,这时进程是在EDIT程序掌控中的,..
不可能改他的步骤,尤其是在DOS中..
作者: willsort     时间: 2005-8-13 19:25
Re xy2fengye:

  在我看来,这样做的意义不是很大,所以其挑战性便打了个折扣。

  因为 EDIT 并不是用来处理文本流的工具,它具有典型的窗口菜单界面,使用菜单命令实现文本编辑,这是它的一个优势,当然也可能是一个劣势,然而这仍然是技术上的一个进步。

  我们要通过自动化的脚本来控制文本编辑,EDIT从来就不是一个好的选择,甚至于很难成为一个选择。在这方面更胜任的是EDLIN.EXE——这个MS更早推出的工具,它曾经是批处理爱好者的挚爱,具有如同DEBUG.EXE一样的地位。虽然它曾一度消失,但是你现在仍然能从XP等NT系列平台下找到并运行它,也许它对你的问题有意向不到的帮助。
作者: JonePeng     时间: 2005-8-13 21:03
要做到楼主这种演示效果,我想到了用MSDOS 7.1超级启动盘里面的KPUSH。经过小小的试验,可以成功,但缺点是这个演示没有延时效果,键盘“动作”太快了,以致 edit 界面一闪而过。

我在以前的帖子里也对KPush牛刀小试一番,其实KPush的功能还比较强大的,它可以将最多127个字符送入键盘缓冲区,可以在命令行下模拟键盘输入。在默认状态下,键盘缓冲区大小为15个键(可以看作是15个字符),运行 kpush /e 则把缓冲区大小扩充至127个键,如果楼主要演示的1.bat文件不长,那么这127个键足以应付。试试以下的命令:

kpush /e
kpush "edit 1.bat" 13 "@echo KPUSH demo program." 13 "@echo Returned to DOS prompt." /33 "xy"

解释一下:

kpush /e -- 将缓冲区大小扩充至127个键

第二行的参数很多,其实这些参数都是模拟输入的字符和键盘扫描码。其中普通字符串必须用引号(单、双引号都行)括起来。“13”就是回车键的ASCII代码,后面的“/33”是 Alt+F 组合键的扫描码,对于像组合键、F1~F12等功能键,必须用“/”后接扫描码,以便区分普通键的ASCII代码。末尾的“xy”表示在按了 Alt+F 后,先按“x”,此时edit提示是否保存文件,然后再模拟按“y”键退出。要查询某个键的代码或扫描码,可以直接运行KPUSH,然后按任意键即可看到对应键的结果。

[ Last edited by JonePeng on 2005-8-13 at 21:05 ]
作者: Climbing     时间: 2005-8-13 21:13
楼主不要edlin,他要的就是Edit,演示嘛,他要给人演示如何用Edit写一个批处理(或者其它程序)。

个人感觉这也没有什么意义。如果Edit支持类似Office的宏功能,这是可以实现的。在Windows下也有类似的软件,例如Automate。但在DOS下,暂时还没有发现。
作者: willsort     时间: 2005-8-14 20:54
Re Climbing:

      做 EDIT 的自动演示,不如索性用的屏幕截取软件,在命令行下录制输入过程为视频或动画了,虽然体积大一些,不过可以避免很多兼容上的问题,比如使用的环境不支持 edit 。

  不过不知DOS下的录制软件有哪些可以直接录制生成自显示动画的?
作者: xy2fengye     时间: 2005-8-14 21:31
大家好,我想出这个题目的原由是这样的
因为我们有时候不想总是用edit(如果你从来不用的话)打开它,编写程序在保存-----退出-----确定退出。真的有些麻烦。如果我们通做个批处理。岂不是简单省了不少的事吗。
顺便问一下,你们编写批处理用什么工具(dos中)。
作者: wqvbbjiq     时间: 2005-8-14 22:09
因为EDIT要询问保存的,不保存就退出,他要弹出框的,.
不管你以何种方式打开EDIT,不可能改他的步骤,使用DOS
作者: willsort     时间: 2005-8-14 22:39
Re xy2fengye:

  如果你指的是如何在命令行下或者批处理中生成批处理程序或者文本文件,可以参考以下的链接:

  {16833}dos命令有几种方式生成文本文件(*.txt)

  如果你是想通过批处理编辑某些文件,那么我仍建议你使用edlin,或者使用第三方提供的工具,例如 sed。另外,Debug 也有简单地编辑文本的功能。
作者: Climbing     时间: 2005-8-16 10:45


  Quote:
Originally posted by xy2fengye at 2005-8-14 21:31:
大家好,我想出这个题目的原由是这样的
因为我们有时候不想总是用edit(如果你从来不用的话)打开它,编写程序在保存-----退出-----确定退出。真的有 ...

我在DOS下编写东西就是用Edit,我觉得它挺好用的,一点儿也不让人觉得麻烦,如果你嫌它麻烦,好象Bart的工具盘中提供一个Edit程序,那个程序可以直接按Alt+X保存退出,Alt+Q则不保存退出。另外好象还有Qedit或者Vim这一类的编辑工具。