powershell - 通过powershell从文件名中删除SXXEXX?
问题描述
我正在寻找一种从一堆文件中删除某个字符串的方法。我想删除“SxxExx”部分。有时在 Exx 部分后面有一个字母。比如第三个例子。
- 显示名称.S01E01.剧集名称1
- 节目名称-S01E02-剧集名称2
- 节目名称 S02E10a 剧集名称 3
至
- 显示名称.剧集名称1
- 节目名称-剧集名称2
- 节目名称剧集名称3
这些都是文件类型:avi/mkv/mp4
到目前为止,我一直在使用它,但它一直在删除所有数字
Get-ChildItem *.avi | % { Rename-Item $_ ([regex]::Replace($_.Name, "[0-9]", "")) }
解决方案
这个怎么样?
Get-ChildItem *.avi | % { Rename-Item $_ ([regex]::Replace($_.Name, "[.- ]?s[0-9]+e[0-9]+", "")) }
正则表达式是这样工作的:
[.-]?将寻找一个点、破折号或空格或不可用的分隔符
[0-9]+ 将寻找至少一个数字但尽可能多
e 确保e
数字后面有一个
[0-9]+ 将寻找更多的数字并尽可能多地取
我可以推荐这个网站来了解更多关于正则表达式的信息。
推荐阅读
- java - HTTP 标头中的 UUID 验证不起作用?
- c# - 如何在 EFCore 中覆盖实体保存?
- javascript - 如何输出滑块的 RGB 值?
- android - java.lang.NumberFormatException:无效的双精度:android中的“5b80393f7fca491488980fe1”
- javascript - Javascript:如何使用单个数组来实现三个堆栈?
- gradle - Gradle + TestKit + JaCoco:文件锁定异常
- python-3.x - 通过 Python 中的字典循环 3 个解包值
- python - 如何在我的数据框中制作假期指示器
- python - 修改(?)二分搜索
- swift - 难以为函数的参数分配默认值