前言
这两天在看大老师,我想把字幕和视频名称统一一下,使得播放器能自动加载字幕。 然后我就花了半个小时用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('需要更改的部分','更改的内容')}