使用PowerShell批量修改文件夹及子文件夹中符合规则的文件名
PowerShell批量重命名解决方案
以下代码可实现遍历当前目录及所有子文件夹,将文件名中的"lay"替换为"v",并删除"lay"后数字部分之后的多余内容,保留文件后缀:
Get-ChildItem -Recurse -File | ForEach-Object { if ($_.Name -match '^(.*)lay(\d+)-.*(\.\w+)$') { $newName = $matches[1] + 'v' + $matches[2] + $matches[3] Rename-Item -Path $_.FullName -NewName $newName -WhatIf } }
代码说明:
-Recurse:递归遍历当前目录下的所有子文件夹-File:仅处理文件,避免误修改文件夹名称- 正则表达式
^(.*)lay(\d+)-.*(\.\w+)$:^(.*):捕获文件名中"lay"之前的所有内容lay(\d+):匹配"lay"及后续的任意长度数字,将数字单独捕获-.*:匹配数字后的"-"及后续所有无关内容(\.\w+)$:捕获最后的文件后缀(如.indd)
-WhatIf:预览重命名操作,不会实际修改文件名。确认预览结果符合预期后,可删除该参数执行实际重命名。
内容的提问来源于stack exchange,提问作者Florian Meyer
相关产品推荐
相关产品推荐

