中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » 在本论坛看到的个代码但是不知道原理是什么?
作者:
标题: 在本论坛看到的个代码但是不知道原理是什么? 上一主题 | 下一主题
handan
初级用户





积分 30
发帖 12
注册 2007-10-19
状态 离线
『楼 主』:  在本论坛看到的个代码但是不知道原理是什么?

@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
)
这个能判断出最后的盘符 是什么原理呢
谢谢了

2007-12-29 11:20
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 2 楼』:  

依次从Z循环处理到C,注意这里是逆序的,所以如果if语句检测出哪个盘符可用,那么显示这个盘符并且退出,所以基本可以判断最后的盘符。

2007-12-29 12:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
handan
初级用户





积分 30
发帖 12
注册 2007-10-19
状态 离线
『第 3 楼』:  

那这里的NUL有什么作用呀

2007-12-29 20:30
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ngd
中级用户

拟谷盗


积分 312
发帖 108
注册 2007-1-21
状态 离线
『第 4 楼』:  

@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”配合使用,以达到使一般用户看不到任何信息的目的。

2007-12-31 22:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
everdos
初级用户





积分 52
发帖 21
注册 2008-1-1
状态 离线
『第 5 楼』:  dos里有几个预定义的设备

比如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:\是一样的

2008-1-1 10:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: