【问题标题】:Renaming files in Windows在 Windows 中重命名文件
【发布时间】:2019-06-12 07:16:47
【问题描述】:

我在 Windows 中有一堆文件需要删除前缀和后缀。

例如

[video] Home Video - 014 Sunday Night[480p] [x265] [robert].mkv
[video] Home Video - 015 Monday Night[480p] [x265] [robert].mkv
[video] Home Video - 016 Tuesday Night[480p] [x265] [robert].mkv

我想重命名这些文件,所以它会说

014 Sunday Night
015 Monday Night
016 Tuesday Night

我不介意使用 PowerShell、Python、Bat 或 Windows 提供的任何其他功能。 我宁愿不下载第 3 方工具,但如果需要会考虑它

【问题讨论】:

  • 它们是文件夹还是文件?
  • 仅用于文件!
  • 文件扩展名是什么?
  • 所有文件都是 MKV。它们有方括号。我试过 Rename-Item 但它说文件不存在时它不存在
  • 您可以右键单击 > 重命名。开玩笑! :) 你可以试试 FileBot,但我认为他们现在已经付费了。一定有一个免费的替代方案。编辑:我只是意识到它们必须是自制的......哎呀。

标签: python windows powershell


【解决方案1】:

您可以在python中读取带有“os”的文件并将名称替换为正则表达式:

读取文件:https://www.tutorialspoint.com/python/os_rename.htm

用 python 重命名文件:Rename multiple files in a directory in Python

使用正则表达式删除文本:How to remove symbols from a string with Python?

【讨论】:

    【解决方案2】:

    您可以使用单个 PowerShell cmdlet:

    Get-ChildItem *.mkv | Rename-Item -NewName { $_.name -Replace '.*?(\d{3}.*?)\[.*?\.','$1.'}
    

    【讨论】:

    • 如果您想在执行此操作之前检查输出,请在 Rename-Item cmdlet 末尾添加 -WhatIf:Get-ChildItem *.mkv | Rename-Item -NewName { $_.name -Replace '.*?(\d{3} Clip \d).*?\.','$1.'} -WhatIf
    • 谢谢,但剪辑 1、剪辑 2 是实际曲目的名称。它实际上不称为 Clip X。我需要删除 00N Clip 1 前后的方括号和多余的空格
    • @softwareisfun 您能否为您的问题添加更多示例?现在还不清楚,因为Folder Name - 在我看来不像空格。
    • @softwareisfun 更新了我的正则表达式。
    • 我需要将脚本保存在与文件相同的目录中吗?
    猜你喜欢
    • 2018-06-01
    • 2014-04-04
    • 1970-01-01
    • 1970-01-01
    • 2023-01-24
    • 1970-01-01
    • 2018-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多