标题: for語句中的通配符好像有區別
[打印本页]
作者: bush
时间: 2008-1-8 00:34
标题: for語句中的通配符好像有區別
比如:
在當前目錄中有這些文件:
00.txt ~ 09.txt ,10-.txt ,10a.txt ,10+.txt
如果用這些命令 dir *-.txt
dir *a.txt
dir *+.txt
可以分別找出後面三個文件。
但是如果這樣呢——
for %i in (*-.txt) do echo %i
for %i in (*a.txt) do echo %i
for %i in (*+.txt) do echo %i
我在win98 dos提示符下測試的結果,不是我想要的列出三個文件,而是三次列出了目錄中所有文件! 也就是都等同於*.txt
為什麽會這樣呢?
作者: Climbing
时间: 2008-1-8 09:41
Win98 DOS下的通配符跟cmd下的通配符的规则是不一样的,如果*号出现在前面,其后面的所有字符串将被忽略。
作者: fastslz
时间: 2008-1-8 10:59
Climbing兄98还在用吗?我98的DOS淡忘了
作者: bush
时间: 2008-1-8 14:56
标题: Re: #2
但我的问题在于:
为什么 dir 可以而 for 不可以
他们都是在同等环境下的嘛
作者: lxmxn
时间: 2008-1-8 15:05
Originally posted by bush at 2008-1-8 14:56:
但我的问题在于:
为什么 dir 可以而 for 不可以
他们都是在同等环境下的嘛
两个不同的命令能一样吗?
你试试echo *.txt和dir *.txt有什么区别?
作者: bush
时间: 2008-1-9 01:05
Originally posted by lxmxn at 2008-1-8 03:05 PM:
两个不同的命令能一样吗?
你试试echo *.txt和dir *.txt有什么区别?
你这个差别大了,一个支持通配符,另一个不支持
而for ,dir 都是支持通配符,我只是觉得for语句的支持方式残缺不缺很怪异,一不小心就会误用
所有的资料都写for支持通配符,可并没有写明有这样的局限性啊
Last edited by bush on 2008-1-9 at 01:07 AM ]
作者: Climbing
时间: 2008-1-9 08:12
Originally posted by fastslz at 2008-1-8 10:59:
Climbing兄98还在用吗?我98的DOS淡忘了
DOS 7.10应该就属于98的DOS啊,不过98确实很久没用过了。
现在想想,98实在是太不稳定了。
作者: lxmxn
时间: 2008-1-9 12:43
标题: 回复 bush
我这样说的意思就是:每个命令对通配符的支持不一样,不能一概而论。有的支持得比较好,有的只是支持部分,有的甚至不支持。具体情况具体对待了。