中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-19 14:38
47,814 主题排行 / 349,908 发帖 / 今日 0 篇 / 48,259 会员排行
DOS疑难解答 & 问题讨论 (解答室) » 求教:foxbase中的run/!command failed错误
可打印版本  2,090 / 17
第1楼 soslowcar 发表于 2008-11-04 20:12
初级用户 发帖 20 积分 51
求教: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有何区别呢???
第2楼 DOSforever 发表于 2008-11-04 21:18
金牌会员 发帖 2,239 积分 4,639
没区别,但是执行第二层 shell 不是按照 path 环境变量去寻找命令解释器的,而是依据 comspec 环境变量,你看看你的环境变量中有没有 comspec 这个变量名,有的话是否正确。按理说正常启动 DOS 不会丢失或有错误的 comspec ,你新的运行环境是什么。
第3楼 soslowcar 发表于 2008-11-04 21:37
初级用户 发帖 20 积分 51
dos 7.10.+ucdos7+foxbase2.1+
我现在的机器是奔腾4
什么时第二层,难道时在foxbase中调用就时第二层??
第4楼 DOSforever 发表于 2008-11-04 22:05
金牌会员 发帖 2,239 积分 4,639
不仅仅是在 foxbase 中调用系统命令或执行外部程序就叫第二层,而是所有应用程序要这样做都要调用第二层 shell ,比如 NC, QEdit, DOSSHELL, VC, DN 这样做的话都要调用第二层 shell,第一层 shell 就是你启动 DOS 后加载到内存中的命令解释器。

另外我认为像你这样的情况用移植一词好像不太确切,实际就是转移。
第5楼 soslowcar 发表于 2008-11-05 09:23
初级用户 发帖 20 积分 51
求教:DOSforever,还是关于run/!错误!!
DOSforever,非常感谢,但我在config.sys中设置了set comspec=c:\command.com,重启机器,还是有run /! 错误。
我在foxplus 下运行自己的fxst程序,调用copy菜单就有run/!错误,但在foxbase下运行run copy 就正确,而我把command.com拷贝到fxst程序目录下,在foxplus fxst下运行copy菜单就正常了,请问为什么??
再者,移植和转移有什么区别??
谢谢,赐教!!!
第6楼 DOSforever 发表于 2008-11-05 22:44
金牌会员 发帖 2,239 积分 4,639
按理说 comspec 不需要你专门设置。

你自己的fxst程序不知道是怎么编写的,只要 FOXBASE 自己 run 正常就说明没问题。

一般来说移植是指不同平台之间的,比如原本在非 x86 机器下运行的软件经过改写和重新编译在 x86 机器下运行,或者 UNIX 下的软件移植到在 DOS 下运行。而你的情况说白了就是 copy 。
第7楼 soslowcar 发表于 2008-11-06 09:18
初级用户 发帖 20 积分 51
再问DOSforever,关于run/!命令
我要不拷贝 command.com命令到程序文件夹下,也不能在foxbase中运行run copy命令 ,如果拷贝了command.com命令,就可以在foxbase下运行,自然也可以直接运行foxplus fxst(自己的程序)了,这是怎么回事??
难道是内存不够,我的upper memory总共才7k
第8楼 netwinxp 发表于 2008-11-06 09:54
高级用户 发帖 366 积分 741
command.com分为常驻部分和暂驻部分,如果应用程序所需内存太大或者是.com文件,那么command.com会先释放暂驻部分,然后再运行应用程序,退出应用程序后再装入暂驻部分。如果在应用程序中使用DOSSHELL功能就会要求装入暂驻部分,但此时应用程序并不会把环境变量传递过去,所以要在当前目录有command.com。
第9楼 DOSforever 发表于 2008-11-07 21:39
金牌会员 发帖 2,239 积分 4,639
我后来试了下,在 MS-DOS 7.10 ,不使用 CONFIG.SYS 和 AUTOEXEC.BAT ,UCDOS 7.0 ,FOXBASE 2.10+ 的环境下却无法重现你的故障,但有趣的是,如果用我一直使用的命令解释器 4DOS 却可以重现你的故障现象,而且我的 COMSPEC 没有错误,非要把 COMSPEC 的变量值改成 COMMAND.COM 才可以。难道 FOXBASE 还认 COMMAND ?
第10楼 soslowcar 发表于 2008-11-13 11:32
初级用户 发帖 20 积分 51
“我后来试了下,在 MS-DOS 7.10 ,不使用 CONFIG.SYS 和 AUTOEXEC.BAT”
那使用什么???
我也用了comspec=c:\command.com,但还是有不把command.com拷贝到程序运行目录下就出现command 错误,为什么???
第11楼 DOSforever 发表于 2008-11-13 12:42
金牌会员 发帖 2,239 积分 4,639
不使用的意思就是使用 DOS 的缺省配置,也就是没有对内存优化。

我的不一定要是 C:\COMMAND.COM ,C:\DOS\COMMAND.COM 也可以,反正一定要是 COMMAND ,不可以是别的命令解释器,C:\4DOS.COM 也不行,奇怪就奇怪在这里。
第12楼 Climbing 发表于 2008-11-13 13:49
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
只能说明foxbase有bug了。
第13楼 soslowcar 发表于 2008-11-14 09:38
初级用户 发帖 20 积分 51
但,我移植前的那台很老的计算机就好用呀,我的配置文件config.sys,autoexec.bat都跟他一样呀,不能是foxbase的bug呀
第14楼 DOSforever 发表于 2008-11-16 22:12
金牌会员 发帖 2,239 积分 4,639
你的 DOS 7.10 是哪里的呢?是 Win98 带的还是这里网站下载的?有没有试过 6.22 版的 DOS 呢?
第15楼 soslowcar 发表于 2008-11-17 16:01
初级用户 发帖 20 积分 51
是在网上下的,做成两张软盘,从软盘启动,安装的dos7.1
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023