You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PowerShell拆分电影文件名并提取年、名、厂牌信息

PowerShell脚本:提取电影文件名信息并保存到单独文件

我来帮你搞定这个需求——用PowerShell遍历电影文件夹,从指定格式的文件名里提取年份、影片名称和出品方,然后把这些信息保存到对应电影的单独文件中。下面是完整的脚本和详细说明:

# 替换成你的电影文件夹路径
$movieFolder = "C:\Path\To\Your\Movies"

# 获取文件夹内所有文件(不包含子文件夹)
$movieFiles = Get-ChildItem -Path $movieFolder -File

# 定义匹配文件名的正则表达式,覆盖你给出的所有格式
$fileNamePattern = '^\[(\d{4})\]\s+(.*?)\s+\[P\d+\](?:\[Director Edition\])?\s+-\s+(.*)$'

foreach ($file in $movieFiles) {
    # 获取不带扩展名的文件名
    $baseName = $file.BaseName

    # 用正则匹配文件名
    if ($baseName -match $fileNamePattern) {
        # 提取匹配到的属性
        $year = $matches[1]
        $movieName = $matches[2].Trim()  # 去除名称前后可能的多余空格
        $studio = $matches[3].Trim()

        # 生成信息文件的路径(和原电影文件同名,后缀为txt)
        $infoFilePath = Join-Path -Path $movieFolder -ChildPath "$($file.BaseName).txt"

        # 写入信息到文件,使用UTF-8编码避免乱码
        @"
年份(Year): $year
影片名称(Name): $movieName
出品方(Studio): $studio
"@ | Out-File -Path $infoFilePath -Encoding UTF8

        Write-Host "已生成信息文件: $infoFilePath"
    }
    else {
        # 处理不符合格式的文件,输出警告
        Write-Warning "文件名不符合格式,跳过处理: $($file.Name)"
    }
}

Write-Host "所有文件处理完成!"

脚本详细解释:

  1. 设置文件夹路径:把$movieFolder的值替换成你实际存放电影的文件夹路径。
  2. 获取文件列表:用Get-ChildItem -File只获取文件夹里的文件,不会遍历子文件夹(如果需要包含子文件夹,可以加上-Recurse参数)。
  3. 正则表达式说明:
    • ^\[(\d{4})\]:匹配开头的[四位数字]格式,捕获组1提取年份;
    • \s+(.*?)\s+:非贪婪匹配年份后面的影片名称,直到遇到[Pxx]部分;
    • \[P\d+\](?:\[Director Edition\])?:匹配[P数字],同时兼容可选的[Director Edition]后缀(非捕获组,不提取这部分内容);
    • \s+-\s+(.*)$:匹配-前后的空格,然后捕获组3提取出品方名称。
  4. 遍历处理每个文件:
    • 先获取不带扩展名的文件名,避免扩展名干扰匹配;
    • 如果匹配成功,提取三个属性并去除可能的多余空格;
    • 生成和原电影同名的.txt文件,写入格式化后的信息;
    • 如果文件名不符合格式,输出警告提示。

测试效果:

针对你给出的三个文件名:

  • [1979] Name of the movie [P1] - Disney → 生成的txt文件内容:
    年份(Year): 1979
    影片名称(Name): Name of the movie
    出品方(Studio): Disney
    
  • [1979] Name of the movie [P1][Director Edition] - PTC → 生成的txt文件内容:
    年份(Year): 1979
    影片名称(Name): Name of the movie
    出品方(Studio): PTC
    
  • [1980] Name of the movie [P8][Director Edition] - Test → 生成的txt文件内容:
    年份(Year): 1980
    影片名称(Name): Name of the movie
    出品方(Studio): Test
    

如果后续有其他格式的文件名,只需要调整正则表达式$fileNamePattern即可适配。

内容的提问来源于stack exchange,提问作者maj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:34:52