【问题标题】:Regular Expressions Aren't Working in Bulk File Renaming正则表达式在批量文件重命名中不起作用
【发布时间】:2020-08-15 16:27:51
【问题描述】:

我在使用正则表达式时遗漏了一些东西,因为我的行在我替换定义的字符串时有效。我试过\d[0-9]。我忘记了什么?

原创FOOBAR_12345678-0001.csv

目标12345678.csv

get-childitem *.csv | foreach { rename-item $_ $_.Name.Replace("FOOBAR_(\d{8})-\d{4}", "$1") }

【问题讨论】:

    标签: regex powershell rename file-rename batch-rename


    【解决方案1】:

    以下对我有用:

    get-childitem *.csv | foreach { rename-item $_ ( $_.Name -replace 'FOOBAR_(\d{8})-\d{4}', '$1') }
    

    为什么:

    1. 我怀疑您使用的 .Replace() 方法不使用正则表达式。
    2. 我不是 100% 确定它是否有必要,但我已经习惯在 powershell 正则表达式中使用单引号,以防发生任何 shell 扩展恶作剧。

    【讨论】:

    • 啊。谢谢。我被难住了。肯定会坚持使用单引号。
    猜你喜欢
    • 1970-01-01
    • 2018-12-05
    • 2018-06-14
    • 2017-10-31
    • 2012-05-26
    • 2015-06-08
    • 1970-01-01
    • 2011-09-14
    • 2014-10-31
    相关资源
    最近更新 更多