我在目录中的文件名具有不同的开头字符串,我希望删除这些字符串并仅保留字母字符+文件扩展名:
[例子]
1-09. 但不适合我.mp3
1-11. 夏日时光.mp3
1-12. 我的风趣情人.mp3
13. 印第安纳 (回到印第安纳的家).mp3
2-02 我爱你.mp3
2-05 有你回家真好.mp3
2-11. 雾天.mp3
我看到的唯一模式是 RegEx 应该删除直到第一个字母字符的所有字符。
[期望输出]
但不是我.mp3
夏日时光.mp3
我的有趣情人.mp3
印第安纳(回到印第安纳的家).mp3
我爱你.mp3
回家见你真好.mp3
雾天.mp3
Powershell 应该是什么样子来实现这一点?
我有过类似的想法,但是我对 RegEx 的了解不够多,无法实现我的目标。
foreach ($file in (get-childitem *.mp3).name) { Rename-Item $file ($file -replace '^[^-]*-\s*') }
谢谢
答案1
使用:^\d+(?:-\d+)?\.?
并且替换为无。
解释:
^ # beginning of line
\d+ # 1 or more digits
(?: # non capture group
- # hyphen
\d+ # 1 or more digits
)? # end group, optional
\.? # optional dot
# a space