标题: 求教:foxbase中的run/!command failed错误
[打印本页]
作者: soslowcar
时间: 2008-11-4 20:12
标题: 求教:foxbase中的run/!command failed错误
我在移植一台dos6.22机器,好像时486的,现在移植成功了,但就是运行ucdos下foxbase2.1开发的软件时,有一个foxbase调用dos系统copy的命令,如 run copy *.idx a:,遇到run/! command failed 错误,好像是foxbase没找到dos命令,我把command.com拷贝到程序运行目录,就可以运行了!
难道command.com在启动时没加载到内存中吗?foxbase怎么会找不到呢??
我的config.sys文件:
set path =c:\;c:\dos;c:\ucdos\;c:\fox;
我的路径中有C 和C:\dos, 这两个目录中都有command.com呀!!怎么会不能有copy命令呢???
难道说要在autoexec.bat中
写
path c:\;c:\dos;c:\ucdos\;c:\fox;
请问在config.sys和autoexec.bat中设置path有何区别呢???
作者: DOSforever
时间: 2008-11-4 21:18
没区别,但是执行第二层 shell 不是按照 path 环境变量去寻找命令解释器的,而是依据 comspec 环境变量,你看看你的环境变量中有没有 comspec 这个变量名,有的话是否正确。按理说正常启动 DOS 不会丢失或有错误的 comspec ,你新的运行环境是什么。
作者: soslowcar
时间: 2008-11-4 21:37
dos 7.10.+ucdos7+foxbase2.1+
我现在的机器是奔腾4
什么时第二层,难道时在foxbase中调用就时第二层??
作者: DOSforever
时间: 2008-11-4 22:05
不仅仅是在 foxbase 中调用系统命令或执行外部程序就叫第二层,而是所有应用程序要这样做都要调用第二层 shell ,比如 NC, QEdit, DOSSHELL, VC, DN 这样做的话都要调用第二层 shell,第一层 shell 就是你启动 DOS 后加载到内存中的命令解释器。
另外我认为像你这样的情况用移植一词好像不太确切,实际就是转移。
作者: soslowcar
时间: 2008-11-5 09:23
标题: 求教:DOSforever,还是关于run/!错误!!
DOSforever,非常感谢,但我在config.sys中设置了set comspec=c:\command.com,重启机器,还是有run /! 错误。
我在foxplus 下运行自己的fxst程序,调用copy菜单就有run/!错误,但在foxbase下运行run copy 就正确,而我把command.com拷贝到fxst程序目录下,在foxplus fxst下运行copy菜单就正常了,请问为什么??
再者,移植和转移有什么区别??
谢谢,赐教!!!
作者: DOSforever
时间: 2008-11-5 22:44
按理说 comspec 不需要你专门设置。
你自己的fxst程序不知道是怎么编写的,只要 FOXBASE 自己 run 正常就说明没问题。
一般来说移植是指不同平台之间的,比如原本在非 x86 机器下运行的软件经过改写和重新编译在 x86 机器下运行,或者 UNIX 下的软件移植到在 DOS 下运行。而你的情况说白了就是 copy 。
作者: soslowcar
时间: 2008-11-6 09:18
标题: 再问DOSforever,关于run/!命令
我要不拷贝 command.com命令到程序文件夹下,也不能在foxbase中运行run copy命令 ,如果拷贝了command.com命令,就可以在foxbase下运行,自然也可以直接运行foxplus fxst(自己的程序)了,这是怎么回事??
难道是内存不够,我的upper memory总共才7k
作者: netwinxp
时间: 2008-11-6 09:54
command.com分为常驻部分和暂驻部分,如果应用程序所需内存太大或者是.com文件,那么command.com会先释放暂驻部分,然后再运行应用程序,退出应用程序后再装入暂驻部分。如果在应用程序中使用DOSSHELL功能就会要求装入暂驻部分,但此时应用程序并不会把环境变量传递过去,所以要在当前目录有command.com。
作者: DOSforever
时间: 2008-11-7 21:39
我后来试了下,在 MS-DOS 7.10 ,不使用 CONFIG.SYS 和 AUTOEXEC.BAT ,UCDOS 7.0 ,FOXBASE 2.10+ 的环境下却无法重现你的故障,但有趣的是,如果用我一直使用的命令解释器 4DOS 却可以重现你的故障现象,而且我的 COMSPEC 没有错误,非要把 COMSPEC 的变量值改成 COMMAND.COM 才可以。难道 FOXBASE 还认 COMMAND ?
作者: soslowcar
时间: 2008-11-13 11:32
“我后来试了下,在 MS-DOS 7.10 ,不使用 CONFIG.SYS 和 AUTOEXEC.BAT”
那使用什么???
我也用了comspec=c:\command.com,但还是有不把command.com拷贝到程序运行目录下就出现command 错误,为什么???
作者: DOSforever
时间: 2008-11-13 12:42
不使用的意思就是使用 DOS 的缺省配置,也就是没有对内存优化。
我的不一定要是 C:\COMMAND.COM ,C:\DOS\COMMAND.COM 也可以,反正一定要是 COMMAND ,不可以是别的命令解释器,C:\4DOS.COM 也不行,奇怪就奇怪在这里。
作者: Climbing
时间: 2008-11-13 13:49
只能说明foxbase有bug了。
作者: soslowcar
时间: 2008-11-14 09:38
但,我移植前的那台很老的计算机就好用呀,我的配置文件config.sys,autoexec.bat都跟他一样呀,不能是foxbase的bug呀
作者: DOSforever
时间: 2008-11-16 22:12
你的 DOS 7.10 是哪里的呢?是 Win98 带的还是这里网站下载的?有没有试过 6.22 版的 DOS 呢?
作者: soslowcar
时间: 2008-11-17 16:01
是在网上下的,做成两张软盘,从软盘启动,安装的dos7.1
作者: soslowcar
时间: 2008-11-17 16:02
没试过dos6.22,请问哪有他的安装盘。img下载
作者: DOSforever
时间: 2008-11-18 14:56
到下载室搜索一下吧
作者: dejoy
时间: 2008-11-18 17:25
我也还在用foxbase,不过我的环境是winxp+ucdos98特别版+foxbase plus 阿甘版本,一切正常,特显什么的都很正常.我已经抛弃纯DOS来跑foxbase了.