如何使用Powershell批量更改含有方括号文件的文件名

2020-06-28 15:50:32 浏览数 (1)

前言

这两天在看大老师,我想把字幕和视频名称统一一下,使得播放器能自动加载字幕。 然后我就花了半个小时用Powershell重命名所有视频名称了,解决了只需2分钟就能手动改完,或3秒钟就能拖字幕进播放器的需求。

我的需求是将

代码语言:javascript复制
Yahari Ore S2 集数 [BD 1920x1080 HEVC-10bit OPUS ASSx2]

更换为

代码语言:javascript复制
[Kamigami&VCB-Studio] Yahari Ore no Seishun Lovecome wa Machigatte Iru. Zoku [集数][Ma10p_1080p][x265_flac]

言归正传

Rename-Item

直接说结论

代码语言:javascript复制
Get-ChildItem *.mkv | rename-item -newname {$_.name -replace  'Yahari Ore S2 ','[Kamigami&VCB-Studio] Yahari Ore no Seishun Lovecome wa Machigatte Iru. Zoku ['}
Get-ChildItem *.mkv | ForEach-Object {Rename-Item -LiteralPath $_.fullname  -NewName $_.Name.Replace(' [BD 1920x1080 HEVC-10bit OPUS ASSx2]','][Ma10p_1080p][x265_flac]')}

第一句就是Rename-Item一般用法。 这里第二条就是,通过Rename-Item新增了的-LiteralPath功能,实现更改含有正则关键字的(此处为方括号)文件。

通过match的方式,应该还可以把两条合并成一条的。hhhh 我就算了,请大家指教更好的方式。

没有系统学习,就会导致这种事情的出现呀。hhhhh

这里给一个比较批量重命名通用的模板吧。

代码语言:javascript复制
Get-ChildItem *.后缀名 | ForEach-Object {Rename-Item -LiteralPath $_.fullname  -NewName $_.Name.Replace('需要更改的部分','更改的内容')}

0 人点赞