![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-19 02:10 |
共 47,814 主题排行 / 349,908 发帖 / 今日 1 篇 / 48,259 会员排行 |
| DOS疑难解答 & 问题讨论 (解答室) » 在本论坛看到的个代码但是不知道原理是什么? |
| 可打印版本 721 / 4 |
| 第1楼 handan | 发表于 2007-12-29 11:20 |
| 初级用户 发帖 12 积分 30 | |
|
在本论坛看到的个代码但是不知道原理是什么? @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楼 lxmxn | 发表于 2007-12-29 12:09 |
| 版主 发帖 4,938 积分 11,386 | |
|
依次从Z循环处理到C,注意这里是逆序的,所以如果if语句检测出哪个盘符可用,那么显示这个盘符并且退出,所以基本可以判断最后的盘符。
|
|
| 第3楼 handan | 发表于 2007-12-29 20:30 |
| 初级用户 发帖 12 积分 30 | |
|
那这里的NUL有什么作用呀
|
|
| 第4楼 ngd | 发表于 2007-12-31 22:58 |
| 中级用户 发帖 108 积分 312 | |
|
@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楼 everdos | 发表于 2008-01-01 10:10 |
| 初级用户 发帖 21 积分 52 | |
|
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:\是一样的 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |