中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-28 22:34
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » Wengier 的MS-DOS7.1 的COPY的返回码好象错乱? 查看 589 回复 11
楼 主 Wengier 的MS-DOS7.1 的COPY的返回码好象错乱? 发表于 2005-05-20 00:00 ·  中国 广东 广州 教育网
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
22年会员
UID 7105
性别 男
状态 离线
Wengier 的MS-DOS7.1 的COPY的返回码好象有点奇怪?
空间不足的返回码好象错乱? (系统配置没特别的)


2 发表于 2005-05-21 00:00 ·  韩国
系统支持
★★★★★★
“新DOS时代”站长
积分 27,736
发帖 10,521
注册 2002-10-09 12:00
23年会员
UID 9
状态 离线
怎麼奇怪法?能說明一下嗎(我倒沒發現)?
Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

3 发表于 2005-05-21 00:00 ·  中国 广东 广州 教育网
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
22年会员
UID 7105
性别 男
状态 离线
运行COPY后,我想用返回码看是否空间不足,XCOPY好象是4,但COPY后,不管空间是否足,好象都是26,(加载了TW32,DOSLFN)
@echo off
xmsdsk 1000 z: /t /y
copy d:\game\wolf3d z:\ /y >nul
if errorlevel 27 goto 27
if errorlevel 26 goto 26
if errorlevel 5 goto other
if errorlevel 4 goto noenough
if errorlevel 3 goto 3
if errorlevel 2 goto ctrl
if errorlevel 1 goto nofile
if errorlevel 0 goto ok
:27
wbat box error27
goto end
:26
wbat box error26
goto end
ther
wbat box othererror
goto end
:noenough
wbat box noenough
goto end
:3
wbat box errorlevel3
goto end
:ctrl
wbat box ctrlc
goto end
:nofile
wbat box nofile
goto end

:end
set copy=fail
k
最后显示ERROR26
而且,空间不足运行COPY XXXX XXXX >FILE, 或管道 | FIND /I "Insufficient disk space"
> 和| 都无效! 就是不能把这个Insufficient disk space截取下来,但他确实显示了.
XCOPY就正常.


4 发表于 2005-05-21 00:00 ·  中国 山东 济宁 电信
中级用户
★★★
痴迷DOS者
积分 456
发帖 570
注册 2004-10-09 00:00
21年会员
UID 32281
性别 男
状态 离线
而且,空间不足运行COPY XXXX XXXX >FILE, 或管道 | FIND /I "Insufficient disk space"

应该是COPY XXXX XXXX 2>FILE, 或管道 2|FIND /I "Insufficient disk space"把
DOS不是万能的,没有DOS是万万不能的
自古系统谁无死?留取胆清照汗青!uploadImages/20035317345478982.png
5 发表于 2005-05-21 00:00 ·  中国 山东 济宁 电信
中级用户
★★★
痴迷DOS者
积分 456
发帖 570
注册 2004-10-09 00:00
21年会员
UID 32281
性别 男
状态 离线
COMMAND.COM是汇编的,外部命令是BASIC的
DOS不是万能的,没有DOS是万万不能的
自古系统谁无死?留取胆清照汗青!uploadImages/20035317345478982.png
6 发表于 2005-05-21 00:00 ·  中国 山东 济宁 电信
中级用户
★★★
痴迷DOS者
积分 456
发帖 570
注册 2004-10-09 00:00
21年会员
UID 32281
性别 男
状态 离线
哪个是COMMAND.COM的返回码
DOS不是万能的,没有DOS是万万不能的
自古系统谁无死?留取胆清照汗青!uploadImages/20035317345478982.png
7 发表于 2005-05-22 00:00 ·  中国 山西 临汾 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
23年会员
UID 19
性别 男
状态 离线
Re GOTOmsdos:  在DOS和Win9x命令行下,所有的内部命令均不影响返回码(Errorlevel)。你所看到的26应该是其他程序产生的,而非copy。
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
8 发表于 2005-05-22 00:00 ·  中国 广东 广州 教育网
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
22年会员
UID 7105
性别 男
状态 离线
其他程序产生的? 你看我的前帖呀,刚刚运行了COPY后的返回码呀!怎么会是其他程序?XCOPY就没问题呀
9 发表于 2005-05-22 00:00 ·  中国 山东 济宁 电信
中级用户
★★★
痴迷DOS者
积分 456
发帖 570
注册 2004-10-09 00:00
21年会员
UID 32281
性别 男
状态 离线
是xmsdsk产生的把
DOS不是万能的,没有DOS是万万不能的
自古系统谁无死?留取胆清照汗青!uploadImages/20035317345478982.png
10 发表于 2005-05-23 00:00 ·  中国 广东 广州 教育网
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
22年会员
UID 7105
性别 男
状态 离线
最后运行的是COPY啊! 老兄! 返回码怎么会是前面程序的?!
11 发表于 2005-05-23 00:00 ·  美国
系统支持
★★★★★★
“新DOS时代”站长
积分 27,736
发帖 10,521
注册 2002-10-09 12:00
23年会员
UID 9
状态 离线
确实正如defrag所说,ERRORLEVEL 26是由XMSDSK产生的,而非COPY产生的。willsort上面已提到过,DOS下的内部命令包括COPY命令是不会更改ERRORLEVEL值的,所以当XMSDSK Z:运行完时,返回值是26(正好对应驱动器Z:),而后面运行的COPY命令对此时的ERRORLEVEL值完全没有变动,所以COPY完后返回值仍然是26,即保持不变。而XCOPY则不同,它是外部命令,所以是会修改ERRORLEVEL值的,不可与COPY这个内部命令相提并论。也就是说,此程序的返回值是正常现象了。另外,由于"Insufficient disk space"这个信息并不像一般的程序输出那样是写入STDOUT(即标准输出)的,所以不能用管道命令截取。
Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

12 发表于 2005-05-23 00:00 ·  中国 广东 广州 教育网
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
22年会员
UID 7105
性别 男
状态 离线
哈哈! 看了头儿的祥解,完全明白了! 嘿嘿,让大家奸笑了!....
论坛跳转: