中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-08 12:17
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » if exist后面的文件名能否用通配符 查看 1,041 回复 8
楼 主 if exist后面的文件名能否用通配符 发表于 2008-01-21 10:46 ·  中国 四川 德阳 电信
初级用户
积分 96
发帖 45
注册 2007-03-20 06:24
19年会员
UID 82322
性别 男
状态 离线
比如:if exist abc*.txt command
我试过好像不行,请问能否使用通配符,或是用其它替代性方法呢?
2 发表于 2008-01-21 12:16 ·  中国 江苏 苏州 移动
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
要知道用if语句判断批量文件(通配符形式)意义不大,就象证明一个定理一样
要证明其正确性要判断很多种可能性,而判断其是否为假只要找出一个错例即可!
for /f %%i in ('dir/s/b abc*.txt') do if exist %%i command
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
everest79 +3 2008-01-22 13:18
3 发表于 2008-01-21 13:29 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
'dir/s/b abc*.txt'

列出的是存在的吧?

那个判断。。。。
4 发表于 2008-01-21 13:45 ·  中国 江苏 苏州 移动
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
Originally posted by slore at 2008-1-21 01:29 PM:
'dir/s/b abc*.txt'

列出的是存在的吧?

那个判断。。。。

不管存在还是不存在都一样,关键还在于command,用exit来让for只处理一次,效率也高!
for /f %%i in ('dir/s/b abc*.txt') do if exist %%i command 
exit

判断一次即可

[ Last edited by huahua0919 on 2008-1-21 at 01:57 PM ]
5 发表于 2008-01-21 14:03 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
for /f 不能少"delims="参数否则空格后面的字符被忽略
for /f "delims=" %%i in (....) do .....
第一高手 第二高手

6 发表于 2008-01-21 14:06 ·  中国 江苏 苏州 移动
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
恩,默认的是空格为分割符!
谢谢指点
7 发表于 2008-01-21 14:26 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
不太清楚你的意思……

我的意思是:

for /f ... in ('dir/s/b abc*.txt') do command
一定存在的,不用加if那句直接do啊
8 发表于 2008-01-21 15:17 ·  中国 四川 德阳 电信
初级用户
积分 96
发帖 45
注册 2007-03-20 06:24
19年会员
UID 82322
性别 男
状态 离线
是不用加if,否则用不上FOR了,谢谢楼上所有的朋友。
9 发表于 2008-05-12 16:16 ·  中国 福建 泉州 电信
初级用户
★★
积分 148
发帖 69
注册 2006-11-23 23:04
19年会员
UID 71504
性别 男
状态 离线
嗯,精辟…………
论坛跳转: