中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 帮我看一下代码! 上一主题 | 下一主题
hy433124shc
中级用户





积分 201
发帖 75
注册 2007-2-24
状态 离线
『楼 主』:  帮我看一下代码!

@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=%%j
        set 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 200
  echo %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%%k
    set /a diff_=%now_%-%start_%
  if %diff_% LSS %1 goto _procwaitloop
  endlocal & goto :EOF
这也是在网上查到的用来延时的,
在   call rocDelay 200 中的 200是什么意思,

在if %diff_% LSS %1 goto _procwaitloop 中的%1代表什么,

麻烦给我说一下,在这先谢了!

2007-3-14 10:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hy433124shc
中级用户





积分 201
发帖 75
注册 2007-2-24
状态 离线
『第 2 楼』:  

以上“:ProcDelay” 中的“:P”怎么都变成人头了

2007-3-14 10:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




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


  没有“禁用Smiles”造成的吧。


2007-3-14 11:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 4 楼』:  

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.



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2007-3-14 23:59
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
oilio
高级用户

前进者


积分 641
发帖 303
注册 2007-1-10
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by Climbing at 2007-3-14 10:59 AM:
1. nul表示空设备,在这里表示用来判断某个盘符是否真实存在并且可读,对于真实存在且可读的盘符来说:if exist x:\nul会返回真值。同样也可以用来判 ...

不理解啊,nul是空设备不错,但真实存在且可读的盘符用if exist X:\nul 会返回真值?不好理解啊?和正常的理解正好相反啊。那盘符不存在就是返回一个假的值????



我相信总有一天,总会遇到一个人可以相濡以沫、相吻以湿!
2007-3-15 01:22
查看资料  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 6 楼』:  

你可以理解nul为每一个真实目录下都存在的一个文件(这当然是系统虚拟出来的),如果目录不存在,则nul也不会存在。

   此帖被 +2 点积分      点击查看详情   
评分人:【 oilio 分数: +2  时间:2007-3-16 09:53




偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2007-3-15 04:48
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
oilio
高级用户

前进者


积分 641
发帖 303
注册 2007-1-10
状态 离线
『第 7 楼』:  

哦,目录下nul就说明盘或文件夹存在,一般默认每个地方都有一个nul设备名吧?



我相信总有一天,总会遇到一个人可以相濡以沫、相吻以湿!
2007-3-16 09:55
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: