中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-13 17:16
中国DOS联盟论坛 » DOS学习入门 & 精彩文章 (教学室) » 通配符的小问题 查看 1,804 回复 9
楼 主 通配符的小问题 发表于 2006-11-03 00:08 ·  中国 湖北 十堰 电信
新手上路
积分 16
发帖 6
注册 2006-10-22 11:16
19年会员
UID 67700
性别 男
来自 湖北
状态 离线
在目录a下建立三个文件分别是
1.txt
1.txt1
1.txt_old
在a目录下使用dir命令加通配符出现下列情况
情况一
J:\dos>dir *.txt
驱动器 J 中的卷是 Ghost
卷的序列号是 A000-9525

J:\dos 的目录

2006-11-02 11:53 0 1.txt
2006-11-02 11:53 0 1.txt1
2006-11-02 11:53 0 1.txt_old
3 个文件 0 字节
0 个目录 574,640,128 可用字节

问题:通培符在分隔符前 则通配符仅对文件基本名起作用
我已经指定了扩展名字为txt 为什么 txt1和txt_old 也给罗列出来了呢?
情况二J:\dos>dir *.txt
驱动器 J 中的卷是 Ghost
卷的序列号是 A000-9525

J:\dos 的目录

2006-11-02 11:53 0 1.txt
2006-11-02 11:53 0 1.txt1
2006-11-02 11:53 0 1.txt_old
3 个文件 0 字节
0 个目录 574,640,128 可用字节
同样是通配符 为什么dir ?.txt
就没有出现上述情况?
2 发表于 2006-11-03 00:35 ·  中国 山东 济南 移动
钻石会员
★★★★★
积分 10,056
发帖 3,041
注册 2002-11-11 00:00
23年会员
UID 223
性别 男
状态 离线
因为这三者的短文件名是不一样的,比如说1.txt的短文件名就是1.txt,而1.txt1的短文件名或许是1~1.txt,1.txt_old的短文件名则有可能为1~2.txt。
dir *.txt,把三者都列了出来,而dir ?.txt,只列出1.txt。
本帖最近评分记录 (共 2 条) 点击查看详情
评分人分数时间
redtek +2 2006-11-03 00:56
hxuan999 +1 2006-11-18 04:36
简单就是美
3 发表于 2006-11-04 00:05 ·  中国 湖北 十堰 电信
新手上路
积分 16
发帖 6
注册 2006-10-22 11:16
19年会员
UID 67700
性别 男
来自 湖北
状态 离线
还是不太明白啊
1~1.txt 中1~1指代的是什么?
4 发表于 2006-11-04 01:15 ·  中国 山东 济南 移动
钻石会员
★★★★★
积分 10,056
发帖 3,041
注册 2002-11-11 00:00
23年会员
UID 223
性别 男
状态 离线
你需要多了解下长文件名和短文件名是怎么回事。
简单就是美
5 发表于 2006-11-04 07:37 ·  中国 广东 河源 电信
中级用户
★★
积分 266
发帖 98
注册 2006-04-21 20:29
20年会员
UID 54223
性别 男
状态 离线
也不了解这个....怎么后辍可以跑前面去的了.
6 发表于 2006-11-04 11:36 ·  中国 福建 泉州 电信
银牌会员
★★★
积分 1,276
发帖 469
注册 2002-12-23 13:00
23年会员
UID 586
性别 男
来自 福建泉州
状态 离线
DOS使用的是8.3格式的文件名.
8个字符.3个字符
你的文件名为1.txt1
实际上扩展名还是.txt
可以在DOS下使用dir /x查看就知道了.
至于后面的1怎么处理我就不清楚了.
QQ:366840202
http://chenall.net
7 发表于 2006-11-18 04:38
中级用户
★★
DOS之日
积分 337
发帖 161
注册 2006-11-04 05:27
19年会员
UID 69523
性别 男
状态 离线
这个问题可以引深来讨论一下呀.呵呵
for /f %%h in (`echo hxuan`) do for /f %%x in (`echo hxuan`) do if %%h==%%x nul
8 发表于 2006-11-18 05:54 ·  中国 安徽 池州 电信
初级用户
积分 31
发帖 11
注册 2006-11-07 08:16
19年会员
UID 69884
性别 男
状态 离线
我的理解是:有不对的地方,请高手指正!
在8.3 文件格式下, 当文件名长度超出8个是就会在末尾出现~1,其中后面的数字1表示第一个超出8字符的文件,当多个文件名的前八个相同时,就会认为是相同的文件名,就会出现~1,~2,~3。
如1.txt,1.txt1,1.txt_old,都是txt文件,但是文件名相同,被认为是1~1.txt,1~2.txt,1~3.txt

[ Last edited by kxows on 2006-11-17 at 06:00 PM ]
9 发表于 2006-11-19 05:08 ·  中国 重庆 九龙坡区 电信
新手上路
积分 8
发帖 6
注册 2006-10-21 03:11
19年会员
UID 67416
状态 离线
不了解这个....怎么后辍可以跑前面去的了.
10 发表于 2006-11-19 08:50 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
Originally posted by kxows at 2006-11-18 05:54:
我的理解是:有不对的地方,请高手指正!
在8.3 文件格式下, 当文件名长度超出8个是就会在末尾出现~1,其中后面的数字1表示第一个超出8字符的文 ...


  并不是像你所说的那样。你在一个文件夹里面建100个文件,然后用"dir /x"查看一下就知道结果了。
论坛跳转: