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

如何用PowerShell批量修改文件名中的序号格式?

PowerShell批量重命名文件序号优化方案

需求场景

需要将一批文件名的序号格式批量修改,示例如下:

  • 01. name1.txt → 1.01 name1.txt
  • 02. name2.txt → 1.02 name2.txt
  • 100. name100.txt → 1.100 name100.txt
  • 101. name101.txt → 1.101 name101.txt

核心需求

  • 将文件名开头的XX.格式序号替换为1.XX
  • 完全保留文件名除开头序号外的其余部分
  • 保持文件原有的排序顺序不变

当前分步操作的问题

目前需要分两次命令执行,还得针对两位数、三位数序号分别处理,效率较低:

  1. 移除文件名开头部分(需分两次适配不同位数):
gci *.txt | ren -newname { [string]($_.name).substring(4) }
  1. 重新添加带前缀的序号:
$count=01;
gci | rename-item -newname {"1.{0:d2} {1}" -f $script:count++, $_.name}

最优单命令解决方案

用正则表达式匹配替换,一次完成所有文件的重命名,无需区分序号位数,同时保留原序号和文件顺序:

Get-ChildItem *.txt | Rename-Item -NewName { $_.Name -replace '^(\d+)\.', '1.$1 ' } -WhatIf

命令说明

  • ^(\d+)\.:正则表达式匹配文件名开头的任意位数数字加句点,(\d+)会把原序号捕获为分组
  • '1.$1 ':替换为1.加捕获到的原序号,再用空格代替原来的句点
  • -WhatIf:参数用于预览重命名效果,确认无误后可以删除该参数执行实际重命名

这个方法的优势:

  • 单条命令完成所有操作,无需分步处理
  • 自动适配1位、2位、3位甚至更多位数的序号
  • 完全保留原序号,不会因为重新计数打乱原有顺序
  • Get-ChildItem默认按文件名排序,确保处理顺序和原文件顺序一致

内容的提问来源于stack exchange,提问作者tri-t0ne

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 12:05:29