繁体   English   中英

正则表达式在批量文件重命名中不起作用

[英]Regular Expressions Aren't Working in Bulk File Renaming

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

原装FOOBAR_12345678-0001.csv

目标12345678.csv

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

以下对我有用:

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

为什么:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM