正则表达式无法在批量文件重命名中工作

问题描述 投票:0回答:1

我在使用regex时缺少了一些东西,因为当我替换定义的字符串时,我的行就会工作。我试过 \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个回答
2
投票

以下是我的工作。

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

为什么?

  1. 我怀疑你使用的.Replace()方法不接受regexes.
  2. 我不是100%确定有必要,但我已经习惯了使用单引号与powershell regexes,以防有任何shell扩展的诡计发生。
© www.soinside.com 2019 - 2024. All rights reserved.