标题: 讨论批处理ren命令中通配符的作用 [打印本页]
作者: batman 时间: 2008-10-15 11:01 标题: 讨论批处理ren命令中通配符的作用
&&在讨论前请大家运行以下文件夹和文件生成代码,先生成测试的条件:- @echo off
- md temp&cd temp
- cd.>abcdefg.txt
复制代码
现在开始手动测试,大家不妨先猜测下ren *.txt 1*.txt会出现什么样的结果,再运行这个
命令,结果是不是跟大家想像的不一样,是不是有疑问了?大家暂且还是先留着疑问往
下看。现在大家输入ren *.txt ??3*.txt,是不是有人会惊叹了,这样居然将指定位数的字符
替换了。好了,惊叹将会继续,大家再继续输入ren *.txt .*,怎么样,先千万不要晕了,
再ren *.txt 123.txt&ren *.txt *.,是不是有点神奇啊?好了,我们现在要讨论的问题来了:
在上面这一系列的代码中,ren命令中的*究竟是通配的什么内容?本人先提出自己的设想
(也经过数次测试):
1、第一个*通配的是文件名,这个我不说大家都知道的;
2、第二个*是以.号为分界进行通配的,如*.中的"*"通配的是文件名(ren *.txt *.),.*中的"*"
通配的是后缀名(ren *.txt .*);
3、然后这个*还存在一个特性,我也不知道怎么定义,估且叫做不重复匹配特性,就是
匹配的是从*号所在位开始未出现的字符(原文件中的),当省略后缀时,*匹配中也包含
了后缀名,也就是ren *.txt 1*.txt和ren *.txt 1*是一样的效果。这个不重复匹配还真是难理
解,下面我们就以一个实例来说明:如ren *.txt ??3*.txt在"?3.txt"中"??"是代表的文件名的
前两个字符,3就是表示将文件名第三个字符改为3,*就是匹配的名件第四个字符往后的字
符,当然这个前提是文件名必须含有4个以上的字符,如文件名字符数不足4个,这个*就
没有意义了;
4、掌握以上特性对于我们批量修改文件名将是大为有效的,只要运用得当,在这一点
上是完全可以替代for的。
以上只是个人所想到和总结的一点东西,不系统也谈不上严谨,只是给大家提出这样一
个话题,希望大家都各自进行测试并发表自己的看法,以真正全面挖掘出这其中的实际运用
价值,来为我们所享有和服务。
[ 本帖最后由 batman 于 2008-10-15 11:04 编辑 ]
作者: qq641255849 时间: 2008-10-15 12:56
占个位先,坐观,有空再看看
作者: stuqx 时间: 2009-5-21 16:39
想知道 RD是不是不能用通配符呀
我用RD 老是提示“文件名、目录名或卷标语法不正确”
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |