日常用电脑的过程中常常会遇到文件重命名问题,这时候大家都会知道,点两下文件名就可重命名,或者按F2
快捷键也可以重命名,那么如果遇到10个100个文件需要批量重命名的时候怎么办呢?
有一些第三方工具,可以批量重命名,但是有批量重命名的操作我们并不非每天都在用,为此而装一个软件,有些太过麻烦了。岩兔站今天讨论的是,使用windows自带的命令行工具,进行重命名。
命令行中ren命令
以下全部操作都要在命令行中执行,首先在命令行中定位到需要命名的文件夹再执行。所有windows操作系统都支持!
截取文件名
只取文件名前几位
yantuz.cn.txt
更改为:
yantuz.txt
实现方法
ren *.txt ??????.txt
其中?的个数代表截取的长度
批量加后缀
比如一堆文件,需要设置统一的后缀,常见于文件加版权。
name.txt
更改为:
name_yantuz.cn.txt
实现方法
ren *.txt ?????_yantuz.cn.*
其中?
个数要大于文件名长度,如果希望重命名并截取文件名,可减少第二个参数?
个数。
批量替换文件名
上一例中如果后缀加错,可以进行再次修改。
name_yantuz.cn.txt
更改为:
name_ytz.txt
实现方法:
ren *_yantuz.cn.txt *_ytz.txt
更改扩展名
img.jpg
更改为:
img.jpeg
实现方法:
ren *.jpg *.jpeg
PowerShell批量重命名
注意,以下操作需要在PowerShell里实现,win10以上系统可用。
加数字后缀
将文件整理成统一文件前缀加递增数字的形式
IMG_20190129.jpg
IMG_20190128.jpg
更改为:
yantuz_0.jpg
yantuz_1.jpg
实现形式:
Dir | %{Rename-Item $_ -NewName ("yantuz_{0}.jpg" -f $nr++)}
截取部分标题
比如文件名带前缀或后缀,可以批量截取去除。
name_yantuz.txt
otherName_yantuz.txt
更改为:
name.txt
otherName.txt
实现方法:
//去除后缀
Dir | Rename-Item -NewName {$_.name.substring(0, $_.BaseName.length-7) + $_.Extension}
//去除前缀
Dir | Rename-Item -NewName {$_.name.substring($_.BaseName.length-7) + $_.Extension}
查找替换文件名
将文件名中的部分内容替换成其他内容
将name_yantuz.txt
更改为:
name-yantuz.txt
实现方法:
Dir | Rename-Item -NewName {$_.name -replace "_","-"}
扩展用法:
- 替换的字符串用 “”,可以删除指定字符串
- 替换的字符串用 ” “,可将文件名中的空格去除
更改扩展名
img.jpg
更改为:
img.jpeg
实现方法:
Dir | Rename-Item -NewName { [io.path]::ChangeExtension($_.name, "jpeg") }
过滤器
上述所有替换方法都可添加过滤器进行文件匹配。
将文件夹中所有jpg文件进行重命名。
Dir -filter *.jpg | %{Rename-Item $_ -NewName ("yantuz_{0}.jpg" -f $nr++)}
参考资料
https://www.windowscentral.com/how-rename-multiple-files-bulk-windows-10