我正在尝试使用正则表达式重命名几个文件 .
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:参数'NewName'的脚本块输入失败 . 正则表达式模式无效
当我运行此命令时:
Get-ChildItem . -file -Filter "*.dat" | Rename-Item -newname { $_.name -replace "\(?:.*?)([-\\s].*?).dat\", ""}
2 回答
使用下面的正则表达式,然后用空字符串替换匹配的字符 .
DEMO
另一个选项可以使用
basename
而不是name
属性