You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell脚本需求:将数字前缀文件名调整为数字后缀格式

解决PowerShell批量重命名文件的问题

嘿,刚接触PowerShell完全不用慌,这个重命名需求很好实现,我给你准备了一个简单易懂的脚本,还会一步步拆解细节,保证你能搞明白~

完整测试脚本(先模拟操作,安全不翻车)

# 获取当前目录下所有带"Customer.txt"的文件,再精准筛选开头是数字的目标文件
Get-ChildItem -Filter "*Customer.txt" | 
    Where-Object { $_.Name -match '^(\d+)Customer\.txt$' } | 
    ForEach-Object {
        # 从正则匹配结果里提取开头的数字部分
        $number = $matches[1]
        # 构造新文件名:Customer+数字+原扩展名
        $newName = "Customer$number$($_.Extension)"
        # -WhatIf参数会先模拟操作,不真改文件名,方便你确认效果
        Rename-Item -Path $_.FullName -NewName $newName -WhatIf
    }

脚本细节拆解

  • Get-ChildItem -Filter "*Customer.txt":先把当前目录里所有带Customer.txt的文件列出来,缩小处理范围,避免误碰其他无关文件。
  • Where-Object { $_.Name -match '^(\d+)Customer\.txt$' }:用正则表达式精准锁定目标文件:
    • ^(\d+):捕获文件名开头的1到N位数字(不管是1位、2位还是3位都能匹配)
    • Customer\.txt$:匹配后面固定的Customer.txt部分,\.是转义点号(因为正则里点号是特殊字符,必须转义才能匹配真实的点)
  • $matches[1]:正则里用括号()捕获的内容会存在$matches变量里,这里取第一个捕获组就是我们需要的数字。
  • $newName = "Customer$number$($_.Extension)":构造新文件名,用$($_.Extension)保留原文件的扩展名,这样就算你的文件不是.txt也能适配。
  • -WhatIf参数:加上这个参数后,脚本只会输出要执行的重命名操作,不会真的修改文件名。等你确认输出的新文件名都符合预期后,删掉这个参数就能真正执行重命名了。

额外小提示

  • 如果目录里已经存在Customer1.txt这类目标文件,重命名时会报错,执行前可以先检查一下有没有重名文件。
  • 要是想同时处理子目录里的文件,给Get-ChildItem加上-Recurse参数就行。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:39:26