BAT批处理脚本:怎样批量修改文件名?

如题所述

第1个回答  2023-09-08

BAT批处理脚本:批量修改文件名,方法如下:

批处理脚本,英文名叫Batch,扩展名.bat取了前3个字母。语法好像其实是DOS命令,说实话我不会,当年我每次想玩《大富翁》,都是要喊我妈给我打开的。所以说Windows这样的视窗操作系统的出现确实有划时代的意义,它解决了大多数熊孩子用电脑100%报备的问题。

Windows始终保留着一部分DOS的功能,在开始菜单里可以找到。以前叫MS-DOS,现在叫命令提示符,打开它的快捷键是【“Win+R”→输入“cmd”→确定】。

顺便提一下最近踩的一个坑儿,python的第三方库需要在CMD下pip install才可以安装,而不是在python环境下。因为其实我也不会,所以也不知道为什么。

然后话题回到批处理,直接说用法。假设有这样一个场景,我想要把一些视频用百度网盘分享给另一个人。但因为这些视频内容的关系,如果直接上传的话可能会变成“净网提示”。这种情况下,许多人就会采用改扩展名的方法,比如把.avi,改成.abcd,然后再上传。而这些视频可能是HOB的某部美剧的全集,它非常的多,一个一个来改很麻烦,这时候就会有批量修改扩展名的需求。

插一句,对于一位正常的PC使用者,我是强烈建议在文件管理器中显示文件扩展名的,有很多好处。Win10的显示方式如图,之前的版本的Windows应该是在“文件夹选项”中。

那怎样批量修改扩展名呢?实际上只需要一行命令。在视频文件夹内新建一个文本文档,输入:ren *.mkv *.abcd,保存,然后将此文档扩展名.txt改成.bat,双击运行。改回来的话,就是:ren *.abcd *.mkv。于是ren命令的用法就很容易懂了:ren [Drive:][path] filename1 filename2。

[Drive:][path]是文件所在的路径,刚才的命令缺省了,于是就默认作用于它所在的文件夹,filename1是旧文件名,filename2是新文件名。下面这条命令的意思就是把D盘Video文件夹下的Marry.avi改名成Jenny.avi:ren D:\Video\Marry.avi Jenny.avi,而前面的“*”是通配符,表示多个字符,常用的还有“?”,表示一个字符。

通配符在Word和Excel等软件的查找替换中也比较常用。

那么,到这里就应该猜的到,如果想要给文件名中的部分重命名,比如要把“宾夕法尼亚州地图.jpg”改成“滨州地图.jpg”,就需要使用通配符来完成。确实是猜的,因为我并没有用这种方法修改过部分文件名,这里不得不重申一遍,我并不会DOS命令操作。

但“不会”并不妨碍在必要的时候使用它,对基础原理的理解和猜测,大多数情况下足以支持必要的时候现学现卖。比如,基于之前的猜测,我搜索的时候可能就会使用这样的关键词“REN命令 通配符”,或者再退一步,没有得到猜测,那关键词可能是“部分重命名 批处理 BAT”,关于通配符部分,或许还可以搜索一份完整的通配符用法。

同理,当需要删除大量子文件夹下的重复文件,同样去搜索跟ren对应的命令即可,你将会得到del、rd的用法。那不使用批处理脚本,怎么完成部分重命名呢?可以借助第三方软件。

现在再假设一个新的场景。新媒体运营同学小明负责微信推送,他提前准备好了30天的文章,并按照“5.3发.doc”、“5.4发.doc”……这样命名,其中相当一部分还是有先后顺序的连载内容。因为一些原因,小明负责的公众号要停更5天,所以他的稿子文件名就出现了问题,每一篇都需要顺延5天。于是,怎么办?

连续的顺延,熟悉Excel的人应该能很快想到Excel的“自动完成”功能。所以,这个问题的解决方法之一,就是可以配合Excel来解决。这种感觉,就有点像在Excel里,决定做一个辅助列的感觉。使用辅助列其实就是稍稍多想一步,以避免去死磕复杂的公式,这种感觉又有点像列方程。但多想这一步挺重要,我遇到过一些经常气的人肝疼的同学,就是死活不愿多动半步脑筋。

在C列利用公式将A、B列文本连接并补全文件名:=“ren ”&A1&“发.doc ”&B1&“发.doc”现在只要复制C列到文本文档,再修改扩展名为.bat就可以了。同理,当拿到一个较为混乱的改名对应表时,利用index()、match()函数组合或者vlookup函数,通过Excel的辅助,就可以完成文件名的批量修改。

以及,同样的,前面提到的重复文件删除也能找得到ReNamer式的操作,例如资源管理器的条件搜索,或者升级一下使用Search Everything,找到文件夹下指定文件名或文件类型的所有文件,一起删除。