中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-01 23:43
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » 在本论坛看到的个代码但是不知道原理是什么? 查看 684 回复 4
楼 主 在本论坛看到的个代码但是不知道原理是什么? 发表于 2007-12-29 11:20 ·  中国 河北 邯郸 电信
初级用户
积分 30
发帖 12
注册 2007-10-19 18:07
18年会员
UID 100183
性别 男
状态 离线
@echo off
for %%i in (Z Y X W V U T S R Q P L O N M L K J I H G F E D C ) do (
if exist %%i:\nul echo 最后的盘符为 %%i & pause>nul && goto :eof
)
这个能判断出最后的盘符 是什么原理呢
谢谢了
2 发表于 2007-12-29 12:09 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线
依次从Z循环处理到C,注意这里是逆序的,所以如果if语句检测出哪个盘符可用,那么显示这个盘符并且退出,所以基本可以判断最后的盘符。
3 发表于 2007-12-29 20:30 ·  中国 河北 邯郸 临漳县 电信
初级用户
积分 30
发帖 12
注册 2007-10-19 18:07
18年会员
UID 100183
性别 男
状态 离线
那这里的NUL有什么作用呀
4 发表于 2007-12-31 22:58 ·  中国 安徽 马鞍山 电信
中级用户
★★
拟谷盗
积分 312
发帖 108
注册 2007-01-21 11:36
19年会员
UID 77238
性别 男
状态 离线
@echo off
for %%i in ( C D E F G H I J K L M N O P Q R S T U V W X Y Z ) do if exist %%i:\ echo %%i
pause>nul


>nul 即输出为空
例:ping 127.1 >nul
ping回环地址127.0.0.1 但执行结果不显示在屏幕上

另外还有 >nul 2>nul
此意为屏蔽错误输出


在批处理里“>nul”往往和“@”及“@echo off”配合使用,以达到使一般用户看不到任何信息的目的。
5 dos里有几个预定义的设备 发表于 2008-01-01 10:10 ·  中国 江苏 无锡 电信
初级用户
积分 52
发帖 21
注册 2008-01-01 09:30
18年会员
UID 107370
性别 男
状态 离线
比如con代表显示设备,prn代表打印设备,nul代表空设备
大于号">"表示将前面程序的输出内容重新定向到">"后面的设备,比如
type a.txt表示在屏幕上显示a.txt的内容,
而type a.txt > prn表示将a.txt的内容送到打印机(类似于copy a.txt prn)
pause >nul表示执行pause命令,但不显示pause提示内容
c:\nul与c:\是一样的
论坛跳转: