Chr*_*isF 1 powershell regex rename wildcards
我有很多名称格式为“数字[空格]名称带空格”或“(数字)[空间]名称带空格”的文件,例如:
23 文件名 23 带空格.txt
(47) 文件名 47 带空格.txt
它们分为几个目录,我需要它们的格式为“带空格的数字连字符名称”,例如:
23-文件名 23 带空格.txt
47-文件名 47 带空格.txt
我对递归查找文件然后在有固定模式时重命名它们的命令没有问题:
get-childitem -filter "*pattern*" -recurse | rename-item -newname {$_.Name -replace "pattern", "new string"}
Run Code Online (Sandbox Code Playgroud)
我正在努力解决正则表达式(?)或通配符需要 a)找到文件,然后,更重要的是,b)进行更新。
只要重命名不处理与模式不匹配的文件,那么 a) 部分就不那么重要了。
尝试以下 cmdlet:
gci -Recurse -file | where { $_.Name -match '^\(?\d+\)? .+' } | Rename-Item -NewName { $_.Name -replace '^\(?(\d+)\)? (.+)' , '$1-$2' }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3889 次 |
| 最近记录: |