我希望有人能指导我做我想做的事情。
我发现了一篇先前的文章,其中显示了以下 PowerShell 语句,该语句对我批量重命名一些文件非常有帮助。
get-childitem *.mp4 | foreach { rename-item $_ $_.Name.Replace("_Title1", "") }
这使我能够重命名特定文件夹中的所有文件,如下所示:
- 电影 One_Title1.mp4
- 电影二_标题1.mp4
- 电影三_标题.mp4
重命名为以下内容:
- 电影一.mp4
- 电影二.mp4
- 电影三.mp4
我想了解如何编辑上述语句,以便我能够捕获并重命名具有变化编号的文件,如下所示:
- 电影四_Title12.mp4
- 电影五_Title36.mp4
- 电影六_Title49.mp4
可以重命名为:
- 电影第四部.mp4
- 电影五.mp4
- 电影第六部.mp4
答案1
这个(未经测试的)命令应该使用正则表达式来执行此操作:
Get-ChildItem directory | Rename-Item -NewName { $_.Name -replace '_Title[0-9]+','' }
正则表达式的[0-9]*
意思是:
[0-9]
:任意数字。+
:前一个元素的一次或多次。
您可以使用 来代替*
,表示“零次或多次”,以去掉_Title
没有数字的元素。