![]() |
中国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 therwbat 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 |