如何用PowerShell删除文件名中最后一个下划线前的所有内容?
批量重命名:保留最后一个下划线后的内容
需求说明
需要批量重命名大量含条形码的文件,最终只保留最后一个下划线之后的唯一标识符(含扩展名),删除下划线前的所有内容:
- 原文件名示例:
12 44571 522110_10_E-354-98-U90368.ENG14 44571 500169_9_Monroe NE_G-462-02-5674.GER
- 重命名后目标:
E-354-98-U90368.ENGG-462-02-5674.GER
之前的两步法在文件名格式异常时会误删扩展名或关键内容,需要一步完成的可靠方案。
一步到位的PowerShell命令
Get-ChildItem -File "你的文件夹路径" | Rename-Item -NewName { $_.Name -replace '^.*_', '' } -WhatIf
命令解释
Get-ChildItem -File "你的文件夹路径":定位目标文件夹,获取所有文件对象-replace '^.*_', '':通过正则表达式精准匹配并删除最后一个下划线前的所有内容:^匹配文件名开头.*_是贪婪匹配规则,会自动找到文件名中最后一个下划线,并匹配该下划线之前的所有字符
-WhatIf:测试参数,执行时不会实际修改文件名,只会输出预期的重命名结果。确认结果正确后,删除该参数即可执行实际重命名。
额外提示
- 如果文件名中没有下划线,命令会直接保留原文件名,不会做任何修改
- 建议先在小批量文件上测试,确保结果符合预期后再处理大量文件
内容的提问来源于stack exchange,提问作者Jenn Lee
相关产品推荐
相关产品推荐

