[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

讨论批处理ren命令中通配符的作用

&&在讨论前请大家运行以下文件夹和文件生成代码,先生成测试的条件:
  1. @echo off
  2. md temp&cd temp
  3. 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 编辑 ]
***共同提高***

占个位先,坐观,有空再看看

TOP

想知道  RD是不是不能用通配符呀
我用RD  老是提示“文件名、目录名或卷标语法不正确”

TOP

返回列表