中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 文件大小为0,为什么批处理判断不为0呢?
作者:
标题: 文件大小为0,为什么批处理判断不为0呢? 上一主题 | 下一主题
wiq
初级用户




积分 179
发帖 35
注册 2003-6-3
状态 离线
『楼 主』:  文件大小为0,为什么批处理判断不为0呢?

文件大小为0,为什么批处理判断不为0呢?请大家帮忙看看!
E:\DOWN\d>if d.txt equ 0 echo 0

E:\DOWN\d>dir d.txt
驱动器 E 中的卷是 WORK
卷的序列号是 98D0-BFDC

E:\DOWN\d 的目录

2008-07-24  09:35                 0 d.txt
               1 个文件              0 字节
               0 个目录  9,004,859,392 可用字节

2008-7-24 10:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 2 楼』:  

if d.txt equ 0 这个条件永远也不可能成立。
要做如下判断才行:
@echo off
for /f "delims=" %%i in ('dir /s /b e:\down\d\d.txt') do if "%%~zi" equ "0" echo d.txt为空文件
pause>nul
[ Last edited by bat-zw on 2008-7-24 at 10:26 AM ]



批处理之家新域名:www.bathome.net
2008-7-24 10:20
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
wiq
初级用户




积分 179
发帖 35
注册 2003-6-3
状态 离线
『第 3 楼』:  



  Quote:
Originally posted by bat-zw at 2008-7-24 10:20 AM:
if d.txt equ 0 这个条件永远也不可能成立。

谢谢回复!请问要怎样写呢?

2008-7-24 10:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 4 楼』:  

d.txt是文件名 0是文件大小

所以两者永远不相等。



心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-7-24 10:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wiq
初级用户




积分 179
发帖 35
注册 2003-6-3
状态 离线
『第 5 楼』:  

哦,谢谢楼上2位!

2008-7-24 10:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 6 楼』:  

不需要dir

用双引号引起来路径就可以了。



S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
2008-7-24 10:34
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 7 楼』:  


@echo off
for %%a in ("E:\DOWN\d\d.txt") do if "%%~za" equ "0" echo d.txt为空文件




2008-7-24 10:49
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wiq
初级用户




积分 179
发帖 35
注册 2003-6-3
状态 离线
『第 8 楼』:  

请问大侠%%~za是什么意思呢?

2008-7-24 11:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 9 楼』:  

for /?

  Quote:
另外,FOR 变量参照的替换已被增强。您现在可以使用下列
选项语法:

     ~I         - 删除任何引号("),扩充 %I
     %~fI        - 将 %I 扩充到一个完全合格的路径名
     %~dI        - 仅将 %I 扩充到一个驱动器号
     %~pI        - 仅将 %I 扩充到一个路径
     %~nI        - 仅将 %I 扩充到一个文件名
     %~xI        - 仅将 %I 扩充到一个文件扩展名
     %~sI        - 扩充的路径只含有短名
     %~aI        - 将 %I 扩充到文件的文件属性
     %~tI        - 将 %I 扩充到文件的日期/时间
     %~zI        - 将 %I 扩充到文件的大小
     %~$PATH:I   - 查找列在路径环境变量的目录,并将 %I 扩充
                   到找到的第一个完全合格的名称。如果环境变量名
                   未被定义,或者没有找到文件,此组合键会扩充到
                   空字符串

可以组合修饰符来得到多重结果:

     %~dpI       - 仅将 %I 扩充到一个驱动器号和路径
     %~nxI       - 仅将 %I 扩充到一个文件名和扩展名
     %~fsI       - 仅将 %I 扩充到一个带有短名的完整路径名
     %~dp$PATH:i - 查找列在路径环境变量的目录,并将 %I 扩充
                   到找到的第一个驱动器号和路径。
     %~ftzaI     - 将 %I 扩充到类似输出线路的 DIR

在以上例子中,%I 和 PATH 可用其他有效数值代替。%~ 语法
用一个有效的 FOR 变量名终止。选取类似 %I 的大写变量名
比较易读,而且避免与不分大小写的组合键混淆。





2008-7-24 11:50
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wiq
初级用户




积分 179
发帖 35
注册 2003-6-3
状态 离线
『第 10 楼』:  

谢谢LS的!

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

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


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



论坛跳转: