Powershell 重命名长视频文件名

Powershell Rename Long and Complex Video filenames

提问人:Vicky Dev 提问时间:10/19/2023 最后编辑:Vicky Dev 更新时间:10/19/2023 访问量:60

问:

我刚刚收到了最近发布的系列,名为“亚瑟之家的陷落”。我想将其剧集视频文件重命名为易于阅读的文件名中的所有大写字母和点都替换为空格(1 个点-1 个空格,但保持扩展名,当然是完整的点)。

因此,简而言之,我想做的是捕获所有这些文件名中的所有内容,并在所有这些文件名中包括“1080p”(并删除其余的垃圾),并通过将所有文件名全部大写并放置空格而不是点来重命名它们,并保持相同的扩展名,如果它是 .mkv 或 .mp4。

The.Fall.of.the.House.of.Usher.S01E08.The.Raven.1080p.x264.Hindi.English.Msubs.MoviesMod.org
The.Fall.of.the.House.of.Usher.S01E07.The.Pit.and.the.Pendulum.1080p.x264.Hindi.English.Msubs.MoviesMod.org
....
....

我该怎么做?我确实有这个代码,但它是为不同电影的不同特定类型的文件名设计的,我该如何更改它并制作与上述剧集视频文件名格式兼容的代码副本??

Get-ChildItem -Filter *.mkv | where-object {$_.length -gt 524288000} | Where {$_.BaseName -CNotMatch "^[A-z\s\d]+$"} | Foreach {$FileName = [Regex]::Match($_, "^(.*?)202[2|3]").Value; $FileName = $FileName -replace '\.', ' '; $FileName = $FileName.ToUpper() + ' 1080p.mkv'; rename-item -Path $_.fullname -NewName $FileName}

如果我们也能保持“1080p”完好无损,那将是顶部的樱桃,谢谢!!

powershell 文件重 powershell-5.0 windows-11

评论

0赞 Santiago Squarzon 10/19/2023
我想做的是捕捉之前的一切,包括“1080p”......因此,假设所有文件都将在其名称中安全吗?1080p
0赞 Vicky Dev 10/19/2023
大多数情况下,它们都有 1080p,但有些也有 720p,具体取决于视频的分辨率,如果可以通过管道同时容纳两者,那么很好或只有 1080p 也可以。
0赞 Santiago Squarzon 10/19/2023
像这样的东西?[cultureinfo]::CurrentCulture.TextInfo.ToTitleCase(('The.Fall.of.the.House.of.Usher.S01E08.The.Raven.1080p.x264.Hindi.English.Msubs.MoviesMod.org' -replace '(?<=1080p|720p).+' -replace '\.', ' '))
0赞 Santiago Squarzon 10/19/2023
ToTitleCase不是很聪明。您还需要在之后处理连接扩展
0赞 Vicky Dev 10/19/2023
是的,大部分都很好,这能够重命名所有剧集文件吗,我有 7-8 个,每个文件都有不同的剧集名称,如果所有大写字母都不可行,那么标题大小写会起作用,但让我们看看它是否可行

答:

1赞 Santiago Squarzon 10/19/2023 #1

这可能会解决问题,第一个是创建一个新字符串,删除后面的所有内容,或者接下来将替换每个论坛,最后将字符串大写。其余的就是将该字符串与扩展连接起来。-replace '(?<=1080p|720p).+'1080p720p-replace '\.', ' '. ToUpper()

$validExtensions = '.mkv', '.mp4'
Get-ChildItem -File |
    Where-Object Extension -In $validExtensions |
    Where-Object Length -GT 500mb |
    Rename-Item -NewName {
        ($_.BaseName -replace '(?<=1080p|720p).+' -replace '\.', ' ').ToUpper() + $_.Extension
    }

评论

1赞 Vicky Dev 10/19/2023
感谢您的精彩回答,点赞并将在短时间内接受。再次感谢!