请教大神们,Powershell 批量重命名一个文件夹下所有文件,如何匹配文件名方括号内 8 位数字并移动到文件名开头?试了好几种写法都有问题,不是不起作用就是报错。 原文件名为 [ABCD-1234][Ab-Cde][12345678]Abc def.rar 现在要重命名为 [12345678][ABCD-1234][Ab-Cde]Abc def.rar
1
PrinceofInj 2022-03-03 21:14:49 +08:00
如果固定的在第三段,用]分割文件名,然后把[替代掉,最后用格式化把最后一个改为第一个似乎可以。
|
2
ChaosesIb 2022-03-03 21:26:01 +08:00
正则,`(.*?)(\[\d{8}\])(.*)` 替换为 `$2$1$3`
|
3
ChaosesIb 2022-03-03 21:34:27 +08:00
```
Get-ChildItem . | Rename-Item -NewName { $_.Name -replace '(.*?)(\[\d{8}\])(.*)', '$2$1$3' } ``` 另外如果经常需要整理文件的话,推荐一个文件管理器 Directory Opus ,功能很强大,它的批量重命名可以实时预览,支持正则、宏和 VBS/JS 脚本。 |
4
haffner OP |