中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-17 07:47
47,813 主题排行 / 349,903 发帖 / 今日 0 篇 / 48,259 会员排行
DOS疑难解答 & 问题讨论 (解答室) » Wengier 的MS-DOS7.1 的COPY的返回码好象错乱?
可打印版本  653 / 11
第1楼 GOTOmsdos 发表于 2005-05-20 00:00
铂金会员 发帖 1,827 积分 5,154
Wengier 的MS-DOS7.1 的COPY的返回码好象错乱?
Wengier 的MS-DOS7.1 的COPY的返回码好象有点奇怪?
空间不足的返回码好象错乱? (系统配置没特别的)


第2楼 Wengier 发表于 2005-05-21 00:00
系统支持 发帖 10,521 积分 27,736
怎麼奇怪法?能說明一下嗎(我倒沒發現)?
第3楼 GOTOmsdos 发表于 2005-05-21 00:00
铂金会员 发帖 1,827 积分 5,154
运行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楼 defrag 发表于 2005-05-21 00:00
中级用户 发帖 570 积分 456
而且,空间不足运行COPY XXXX XXXX >FILE, 或管道 | FIND /I "Insufficient disk space"

应该是COPY XXXX XXXX 2>FILE, 或管道 2|FIND /I "Insufficient disk space"把
第5楼 defrag 发表于 2005-05-21 00:00
中级用户 发帖 570 积分 456
COMMAND.COM是汇编的,外部命令是BASIC的
第6楼 defrag 发表于 2005-05-21 00:00
中级用户 发帖 570 积分 456
哪个是COMMAND.COM的返回码
第7楼 willsort 发表于 2005-05-22 00:00
元老会员 发帖 1,512 积分 4,432
Re GOTOmsdos:  在DOS和Win9x命令行下,所有的内部命令均不影响返回码(Errorlevel)。你所看到的26应该是其他程序产生的,而非copy。
第8楼 GOTOmsdos 发表于 2005-05-22 00:00
铂金会员 发帖 1,827 积分 5,154
其他程序产生的? 你看我的前帖呀,刚刚运行了COPY后的返回码呀!怎么会是其他程序?XCOPY就没问题呀
第9楼 defrag 发表于 2005-05-22 00:00
中级用户 发帖 570 积分 456
是xmsdsk产生的把
第10楼 GOTOmsdos 发表于 2005-05-23 00:00
铂金会员 发帖 1,827 积分 5,154
最后运行的是COPY啊! 老兄! 返回码怎么会是前面程序的?!
第11楼 Wengier 发表于 2005-05-23 00:00
系统支持 发帖 10,521 积分 27,736
确实正如defrag所说,ERRORLEVEL 26是由XMSDSK产生的,而非COPY产生的。willsort上面已提到过,DOS下的内部命令包括COPY命令是不会更改ERRORLEVEL值的,所以当XMSDSK Z:运行完时,返回值是26(正好对应驱动器Z:),而后面运行的COPY命令对此时的ERRORLEVEL值完全没有变动,所以COPY完后返回值仍然是26,即保持不变。而XCOPY则不同,它是外部命令,所以是会修改ERRORLEVEL值的,不可与COPY这个内部命令相提并论。也就是说,此程序的返回值是正常现象了。另外,由于"Insufficient disk space"这个信息并不像一般的程序输出那样是写入STDOUT(即标准输出)的,所以不能用管道命令截取。
第12楼 GOTOmsdos 发表于 2005-05-23 00:00
铂金会员 发帖 1,827 积分 5,154
哈哈! 看了头儿的祥解,完全明白了! 嘿嘿,让大家奸笑了!....
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023