首页 > 解决方案 > 通过powershell从文件名中删除SXXEXX?

问题描述

我正在寻找一种从一堆文件中删除某个字符串的方法。我想删除“SxxExx”部分。有时在 Exx 部分后面有一个字母。比如第三个例子。

这些都是文件类型:avi/mkv/mp4

到目前为止,我一直在使用它,但它一直在删除所有数字

Get-ChildItem *.avi | % { Rename-Item $_ ([regex]::Replace($_.Name, "[0-9]", "")) }

标签: powershell

解决方案


这个怎么样?

Get-ChildItem *.avi | % { Rename-Item $_ ([regex]::Replace($_.Name, "[.- ]?s[0-9]+e[0-9]+", "")) } 

正则表达式是这样工作的:

[.-]?将寻找一个点、破折号或空格或不可用的分隔符

[0-9]+ 将寻找至少一个数字但尽可能多

e 确保e数字后面有一个

[0-9]+ 将寻找更多的数字并尽可能多地取

我可以推荐这个网站来了解更多关于正则表达式的信息。


推荐阅读