正则表达式提取文件名XnYn前缀 | PowerToys/PowerShell重命名方案
保留文件名开头XnYn部分的重命名方案
一、Microsoft PowerToys Rename 正则替换方案
直接用正则匹配并删除多余内容,步骤如下:
- 打开PowerToys Rename工具,选中需要重命名的文件
- 切换到「替换」标签页,勾选「正则表达式」模式
- 查找内容输入:
(?<=^X\d+Y\d+)\s.*(?=\.txt) - 替换为留空,不要输入任何内容
- 预览确认效果后,点击「重命名」完成操作
正则说明:
(?<=^X\d+Y\d+):确保匹配的内容紧跟在开头的「X+数字+Y+数字」之后,X1Y2、X10Y25这类格式都能识别\s.*:匹配XnYn之后的空格以及所有后续文本(?=\.txt):确保匹配的内容在.txt后缀之前,避免误删文件后缀
二、PowerShell 替代方案
如果习惯用脚本批量处理,可使用以下PowerShell命令:
# 先切换到目标文件所在的文件夹 Set-Location -Path "C:\你的文件存放路径" # 遍历所有txt文件,提取开头的XnYn并重命名 Get-ChildItem -Filter "*.txt" | ForEach-Object { if ($_.BaseName -match '^X\d+Y\d+') { $newFileName = "$($matches[0]).txt" # 加-WhatIf是预览操作,确认没问题后删掉这个参数再执行 Rename-Item -Path $_.FullName -NewName $newFileName -WhatIf } }
脚本说明:
Set-Location:替换成你实际的文件夹路径,比如D:\Documents\FilesGet-ChildItem -Filter "*.txt":只筛选txt格式的文件$_.BaseName -match '^X\d+Y\d+':从文件名(不含后缀)里提取开头的XnYn部分,匹配结果存在$matches[0]里Rename-Item:执行重命名,-WhatIf参数会先列出将要修改的文件名,确认无误后移除该参数即可正式重命名
内容的提问来源于stack exchange,提问作者Paul Kloppers
相关产品推荐
相关产品推荐

