Board logo

标题: 我的一点经验,不足之处大家执教 [打印本页]

作者: dos时代菜鸟     时间: 2003-6-15 00:00    标题: 我的一点经验,不足之处大家执教

关于bat编写的心得

1.doslfn
  doslfn 的 cp936uni.tbl 可以支持中文长文件名称的显示,但是如果将其用
  lh 命令调用,就不会支持汉语.

2.pc-cache
  pctools90中的一个小工具包括三个基本组件:
  pc-cache.com / pc-ex2x.ovl / pc-wnerr.ov.
  在启动过程中可能会因为内存的过量使用造成硬盘甚至软驱无法正常读取数据,
  可以在config.sys中加载 himem.sys 并把 pc-cache 指令加到在autoexec.bat
  的起始语句,事先分配各个驱动器足够的缓存.
  比如: pc-cache sizext:5120 /writen
  pc-cache.com 可以用pklite压缩掉28%
3.diskgen
  很多人都喜欢使用diskgen这个分区软件,但是我发现如果加载内存不当,就无法使
  用这个软件,我的经验告诉我,如果在config.sys中设置dos=high就很容易出现运行
  diskgen时死机.如果设为dos=low就会好的多.

4.菜单
  不少人使用各种调用批处理程序的菜单编辑器,其实ndos/4dos中就有一个很好的
  内部函数指令可以完成菜单的编辑,而且生成的菜单还是窗口中滚动光亮条形式的,
  也就是说可以在小窗口中显示无数条选项.

  %@select[文本文件名,x1,y1,x2,y2,窗口题目]

  上面的函数意思是在x1,y1到x2,y2的区域建立一个窗口,窗口中显示文本文件的内容
  用户可以通过"上下"键选择文本文件中的某一行内容,当用户按回车键的时候,函数
  就把选定的一行的内容返回到环境中.我们可以用如下例子说明:
  有文本文件名,为abc.txt,内容如下:
  1.dm
  2.spfdisk
  3.vc
  4.ndd
  5.exit

  我们可以编写如下内容的l.bat文件用来完成菜单选项目的

  @echo off
  setlocal
  :loop
  cls
  set ccc=%@select[abc.txt,4,4,10,10,tools]
  if %ccc%*==1.dm* goto dm
  if %ccc%*==2.spfdisk* goto spfdisk
  if %ccc%*==3.vc* goto vc
  if %ccc%*==4.ndd* goto ndd
  if %ccc%*==5.exit* goto end
  :dm
  dm
  goto loop
  :spfdisk
  spfdisk
  goto loop
  :vc
  vc
  goto loop
  :ndd
  ndd
  goto loop
  :end
  cls
  endlocal

  需要运行的时候只要在ndos/4dos环境下运行 l 或者在 msdos环境下运行 ndos/c l
  就可以了

5.关于ucdos在windows中显示花屏问题
  其实这是ucdos默认屏幕显示模式的原因,我们可以把ucdos.bat文件中的 "knl %2"
  一句修改为"knl vesa"就可以了.

6.关于ndos/4dos
  我也经常使用4dos,只是在最近才开始感觉到ndos的稳定性要比4dos强.
  4dos和ndos都是用来作为shell使用的超级好用的外壳程序.
  有些人士反应ndos太过陈旧,而4dos又太过庞大,其实我有一个好办法,可以解决这
  个问题通常我们都会选择使用4dos来代替msdos中的command作为 命令外壳,之所以
  不使用ndos是因为ndos不支持长文件名,其实我们可以使用comamnd+ndos的办法解
  决的, 我们可以把ndos用pklite压缩,一般用msdos的command作为启动外壳,等到需
  要ndos的时候用"ndos/c 命令"的方式临时使用ndos作为次级 外壳.另外,我们使用
  doslfn显示长文件名的目的无非是对文件进行查看/复制/移动/删除等操作,ndos虽
  然不支持长文件名,但是在ndos状态下运行doslfn以后确可以通过vc这个软件对长文
  件名文件进行操作.

  正所谓"萝卜白菜各有所爱".4dos的体积要比(command.com+压缩后的ndos.com)大的多.
  而且如果对4dos进行pklit压缩以后,再作为shell就会不稳定.

7.关于在不进入汉字系统的情况下显示少量汉字的实现方法
  有一个工具软件叫做bt/bte,不但具有好多bat增强功能(比如音效,短小动画,判断语
  句增强等等),同时还提供了不进入汉字系统显示少量汉字的途径就是 bt 程序,它可
  以把预先要使用的汉字编入一个程序中,当执行这个字库程序的时候就会修改ASCII
  码128 ̄255的字符字模.最多64个汉字.这对于编写一般的bat文件是足够了.下载地址:
  http://zql3322.3322.net 中的dos工具.
  我的ghost2003工具盘中的汉字就是用这个工具制作的(因为软盘空间限制,不可能将
  汉字系统放进).


  2003.6.13 dos时代菜鸟 http://zql3322.3322.net 小屋顾问


作者: Wengier     时间: 2003-6-15 00:00


  Quote:
以下是引用dos时代菜鸟在2003-6-15 12:30:55的发言:
1.doslfn
  doslfn 的 cp936uni.tbl 可以支持中文长文件名称的显示,但是如果将其用
  lh 命令调用,就不会支持汉语.

不会吧。。DOSLFN的中文长文件名支持是DOSLFN的作者在我的帮助下完成的。我向来就是用LH DOSLFN /Z:CP936UNI.TBL命令加载DOSLFN的,但并没有出现过不支持中文长文件名的现象呀。。
作者: ko20010214     时间: 2003-6-15 00:00
好帖子,欢迎大家多发这样的心得体会贴!
作者: 如是大师     时间: 2003-6-15 00:00
支持。。。
作者: dos时代菜鸟     时间: 2003-6-15 00:00
doslfn 的使用方面我还不是非常通,或许是我的内存设置有问题,我的声卡是s3的pci,要想运行在dos下就需要较大内存,有可能是这个原因也说不好。
谢谢站长的执教
作者: dos时代菜鸟     时间: 2003-6-16 00:00
还有就是msdos_command.com 在加载doslfn 以后,用vc对文件进行操作的时候,有些文件的长度在8.3标准以内,可还是被莫名其妙的改名为*~1,~2,~3之类的名字。不知道是为什么。
作者: Wengier     时间: 2003-6-16 00:00


  Quote:
以下是引用dos时代菜鸟在2003-6-15 23:57:11的发言:
doslfn 的使用方面我还不是非常通,或许是我的内存设置有问题,我的声卡是s3的pci,要想运行在dos下就需要较大内存,有可能是这个原因也说不好。
谢谢站长的执教

不用谢~~ 我想可能是因为空闲的UMB内存比较少了,所以用LH时CP936UNI.TBL装不进UMB,所以就不能支持中文长文件名了吧。。而我的系统(是MS-DOS 7.1)呢,一般都有630KB左右的空闲常规内存和100KB左右的空闲UMB内存,所以没有过这种问题的~~




欢迎光临 中国DOS联盟论坛 (http://cndos.fam.cx/forum/) Powered by Discuz! 2.5