正则表达式不适用于批量文件重命名

时间:2020-05-01 06:57:03

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

使用正则表达式会丢失一些东西,因为当我替换定义的字符串时,我的行会起作用。我尝试了\d[0-9]。我忘记了什么?

原始FOOBAR_12345678-0001.csv

目标12345678.csv

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

1 个答案:

答案 0 :(得分:1)

以下对我有用:

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

为什么:

  1. 我怀疑您使用的.Replace()方法没有使用正则表达式。
  2. 我不是100%肯定有必要,但是我已经做过在Powershell正则表达式中使用单引号的做法,以防出现任何shell扩展恶作剧。
相关问题