提问人:Vicky Dev 提问时间:10/19/2023 最后编辑:Vicky Dev 更新时间:10/19/2023 访问量:60
Powershell 重命名长视频文件名
Powershell Rename Long and Complex Video filenames
问:
我刚刚收到了最近发布的系列,名为“亚瑟之家的陷落”。我想将其剧集视频文件重命名为易于阅读的文件名中的所有大写字母和点都替换为空格(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”完好无损,那将是顶部的樱桃,谢谢!!
答:
1赞
Santiago Squarzon
10/19/2023
#1
这可能会解决问题,第一个是创建一个新字符串,删除后面的所有内容,或者接下来将替换每个论坛,最后将字符串大写。其余的就是将该字符串与扩展连接起来。-replace '(?<=1080p|720p).+'
1080p
720p
-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
感谢您的精彩回答,点赞并将在短时间内接受。再次感谢!
评论
1080p
[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 '\.', ' '))
ToTitleCase
不是很聪明。您还需要在之后处理连接扩展