![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-03 18:15 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 帮我看一下代码! |
| 可打印版本 807 / 6 |
| 第1楼 hy433124shc | 发表于 2007-03-14 10:27 |
| 中级用户 发帖 75 积分 201 | |
|
帮我看一下代码! @echo off
for %%i in (Z Y X W V U T S R Q P O N M L K J I H G F E D C) do ( if exist %%i:\nul ( for /f "tokens=3" %%j in ('dir /-c %%i:\' do set freesize=%%jset last=%%i if not "!freesize!"=="0" goto last_drive ) ) goto :eof :last_drive 这是我在网一查到的用来查找最后一个盘的BAT 请问 if exist %%i:\nul 中的 nul 的作用 if not "!freesize!"=="0" goto last_drive 中的两 !!的作用,0 代表什么 , @echo off setlocal enableextensions echo %time% call rocDelay 200echo %time% goto :EOF rocDelay delayMSec_setlocal enableextensions for /f "tokens=1-4 delims=:. " %%h in ("%time%" do set start_=%%h%%i%%j%%k:_procwaitloop for /f "tokens=1-4 delims=:. " %%h in ("%time%" do set now_=%%h%%i%%j%%kset /a diff_=%now_%-%start_% if %diff_% LSS %1 goto _procwaitloop endlocal & goto :EOF 这也是在网上查到的用来延时的, 在 call rocDelay 200 中的 200是什么意思,在if %diff_% LSS %1 goto _procwaitloop 中的%1代表什么, 麻烦给我说一下,在这先谢了! |
|
| 第2楼 hy433124shc | 发表于 2007-03-14 10:31 |
| 中级用户 发帖 75 积分 201 | |
|
以上“:ProcDelay” 中的“:P”怎么都变成人头了
|
|
| 第3楼 lxmxn | 发表于 2007-03-14 11:24 |
| 版主 发帖 4,938 积分 11,386 | |
|
没有“禁用Smiles”造成的吧。 |
|
| 第4楼 Climbing | 发表于 2007-03-14 23:59 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
1. nul表示空设备,在这里表示用来判断某个盘符是否真实存在并且可读,对于真实存在且可读的盘符来说:if exist x:\nul会返回真值。同样也可以用来判断目录是否存在,例如: if exist c:\windows\nul ...
2. !freesize!形式用在for命令中,用来表示延迟环境变量。详细请参考for命令的帮助。楼主提供的批处理的功能是从Z到C循环判断盘符是否可读并使用dir命令查看该盘符的可用空间(freesize),如果可用空间不为0(if not '!freesize!'=='0'),则认为这就是最后一个硬盘盘符。 3. 200表示批处理调用的子函数(:ProcDelay)的参数,在这里是200毫秒的意思。 4. %1 在这里就用来表示上面的调用参数。 3. |
|
| 第5楼 oilio | 发表于 2007-03-15 01:22 |
| 高级用户 发帖 303 积分 641 | |
Originally posted by Climbing at 2007-3-14 10:59 AM: 不理解啊,nul是空设备不错,但真实存在且可读的盘符用if exist X:\nul 会返回真值?不好理解啊?和正常的理解正好相反啊。那盘符不存在就是返回一个假的值???? ![]() |
|
| 第6楼 Climbing | 发表于 2007-03-15 04:48 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
你可以理解nul为每一个真实目录下都存在的一个文件(这当然是系统虚拟出来的),如果目录不存在,则nul也不会存在。
|
|
| 第7楼 oilio | 发表于 2007-03-16 09:55 |
| 高级用户 发帖 303 积分 641 | |
|
哦,目录下nul就说明盘或文件夹存在,一般默认每个地方都有一个nul设备名吧?
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |