You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

PowerShell批量重命名:给姓氏与名字间添加逗号

批量重命名文件解决方案

你的问题出在之前的脚本都是硬编码了具体姓名(SMITH John),只能修改单个特定文件名,无法批量处理;第三个脚本缺少文件输入源,导致报错。以下是通用的批量处理方案:

基础版脚本(适用于单词姓氏,如SMITH John

# 先预览重命名效果,不会实际修改文件
Get-ChildItem -Path "C:\Users\powershelltest\*.pdf" | Rename-Item -NewName {
    $_.Name -replace '^([A-Z]+) ([A-Z][a-z]+)(.*)$', '$1, $2$3'
} -WhatIf

# 确认预览结果正确后,去掉-WhatIf执行实际重命名
Get-ChildItem -Path "C:\Users\powershelltest\*.pdf" | Rename-Item -NewName {
    $_.Name -replace '^([A-Z]+) ([A-Z][a-z]+)(.*)$', '$1, $2$3'
}

进阶版脚本(适用于带空格的姓氏,如DE LA CRUZ Maria

如果你的姓氏包含空格,可调整正则表达式匹配多词姓氏:

Get-ChildItem -Path "C:\Users\powershelltest\*.pdf" | Rename-Item -NewName {
    $_.Name -replace '^([A-Z\s]+) ([A-Z][a-z]+)(.*)$', '$1, $2$3'
} -WhatIf

正则逻辑说明

  • ^([A-Z]+):捕获文件名开头的全大写单词姓氏
  • ([A-Z\s]+):捕获带空格的全大写多词姓氏
  • ([A-Z][a-z]+):捕获首字母大写的名字部分
  • (.*)$:捕获文件名剩余的所有内容(包括后缀)
  • $1, $2$3:将捕获的姓氏后添加逗号+空格,再拼接名字和剩余内容

内容的提问来源于stack exchange,提问作者Erin Poworski

火山引擎 最新活动