我想使用正则表达式重命名几个文件。获取正则表达式在powershell脚本中工作
ck1823000-23.dat
ck1293834-67.dat
lo1230324-99.dat
pk1232131-34.dat
...
我想删除-XX 所以结果会是这样:
ck1823000.dat
ck1293834.dat
lo1230324.dat
pk1232131.dat
...
我想出了这个正则表达式:
(?:.*?)([-\\s].*?).dat
但我得到这个错误:
Rename-Item : The input to the script block for parameter 'NewName' failed. The regular expression pattern is not valid
当我运行此命令:
Get-ChildItem . -file -Filter "*.dat" | Rename-Item -newname { $_.name -replace "\(?:.*?)([-\\s].*?).dat\", ""}
感谢另一种选择!很棒。所以我想我不能使用组匹配 – Cornwell 2014-10-02 09:11:02
我认为你可以。 REgex:'^(。*?)([ - \\ s]。*?)(\\。dat)$'replacemet string:'$ 1 $ 3' DEmo http://regex101.com/r/qM2pT8/2 – 2014-10-02 09:16:11