中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-08 14:14
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » if exist后面的文件名能否用通配符
可打印版本  1,042 / 8
第1楼 joyoustar 发表于 2008-01-21 10:46
初级用户 发帖 45 积分 96
if exist后面的文件名能否用通配符
比如:if exist abc*.txt command
我试过好像不行,请问能否使用通配符,或是用其它替代性方法呢?
第2楼 huahua0919 发表于 2008-01-21 12:16
银牌会员 发帖 780 积分 1,608
要知道用if语句判断批量文件(通配符形式)意义不大,就象证明一个定理一样
要证明其正确性要判断很多种可能性,而判断其是否为假只要找出一个错例即可!
第3楼 slore 发表于 2008-01-21 13:29
铂金会员 发帖 2,478 积分 5,212
'dir/s/b abc*.txt'

列出的是存在的吧?

那个判断。。。。
第4楼 huahua0919 发表于 2008-01-21 13:45
银牌会员 发帖 780 积分 1,608
Originally posted by slore at 2008-1-21 01:29 PM:
'dir/s/b abc*.txt'

列出的是存在的吧?

那个判断。。。。

不管存在还是不存在都一样,关键还在于command,用exit来让for只处理一次,效率也高!

判断一次即可

[ Last edited by huahua0919 on 2008-1-21 at 01:57 PM ]
第5楼 fastslz 发表于 2008-01-21 14:03
铂金会员 发帖 2,315 积分 5,493 来自 上海
for /f 不能少"delims="参数否则空格后面的字符被忽略
for /f "delims=" %%i in (....) do .....
第6楼 huahua0919 发表于 2008-01-21 14:06
银牌会员 发帖 780 积分 1,608
恩,默认的是空格为分割符!
谢谢指点
第7楼 slore 发表于 2008-01-21 14:26
铂金会员 发帖 2,478 积分 5,212
不太清楚你的意思……

我的意思是:

for /f ... in ('dir/s/b abc*.txt') do command
一定存在的,不用加if那句直接do啊
第8楼 joyoustar 发表于 2008-01-21 15:17
初级用户 发帖 45 积分 96
是不用加if,否则用不上FOR了,谢谢楼上所有的朋友。
第9楼 echo 发表于 2008-05-12 16:16
初级用户 发帖 69 积分 148
嗯,精辟…………
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023