【发布时间】:2019-04-19 02:34:12
【问题描述】:
我一直在使用 Powershell 来简化创建目录、重命名和移动文件的重复性任务。我正在处理文件名所需的语法非常具体的视频和 PDF 文件。到目前为止,我已经能够纠正我遇到的所有常见错误,但是这个让我很难过。
我的文件的正确语法包括:
01A-50_02A-50-CIPP-PRE.MP4
01AA-50_02AA-50-CIPP-PNSL.PDF
W01AA-48_02AA-48-CIPP-PST-CMP.MPG
我收到了大量如下所示的文件:
01A-50-02A-50-CIPP-PRE.MP4
01AA-50-02AA-50-CIPP-PNSL.PDF
W01AA-48-02AA-48-CIPP-PST-CMP.MPG
我需要用下划线替换第二个破折号,同时保持其他破折号不受影响。否则,我可以在 excel 的帮助下批量执行此操作,但我希望有一个简短的代码,可以在语法中找到并纠正此错误,而无需将列表导出到 excel,使用文本到列,然后连接字母数字部分重新组合在一起。我也不想手动更正所有这些文件名。
根据我的研究,不可能针对特定出现的字符进行替换。我最接近的想法是我找到了一个涉及 REGEX 以及识别和替换模式的解决方案。我无法对此做任何建设性的事情。
我使用此代码的方法是打开包含错误命名文件的文件夹,在其中打开一个 Powershell 窗口,从我桌面上的 txt 文件中复制代码,然后将其粘贴到 Powershell 中。
对此的任何帮助将不胜感激。
【问题讨论】:
标签: regex powershell replace renaming