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

Windows PowerShell批量重命名文件终端显示执行但未实际修改

问题根因

你脚本中的-WhatIf是PowerShell的内置测试参数,作用是仅模拟命令执行过程、输出预期的操作结果,不会对文件进行任何实际修改,这就是你能看到执行提示但文件没有变化的直接原因。

解决方法

  1. 首次运行时可以保留-WhatIf参数,核对终端输出的新文件名完全符合你的需求,避免逻辑错误导致文件命名混乱。
  2. 确认规则无误后,删除Rename-Item后的-WhatIf参数,重新运行脚本即可实际执行重命名操作。

修正后可实际执行的完整代码:

Get-ChildItem | Sort-Object -Descending | Rename-Item -NewName {
$name = $_.Name
$matches = [regex]::matches($name,'\d+')
$offset = 0
foreach ($group in $matches.groups)
{
$before = $name.substring(0,$group.Index+$offset)
$after = $name.substring($offset+$group.Index+$group.Length)
$number = (1+$group.Value).toString().PadLeft($group.Length,'0')
$name = $before + $number + $after
$offset = $offset + $number.Length - $group.Length
}
$name
}

注意事项

  • 建议先复制少量测试文件到单独目录验证脚本逻辑,确认数字加1、前置补零的规则符合预期后,再批量处理正式文件
  • 如果执行时报重名错误,可先检查是否存在重命名后名称重复的文件,提前调整规避冲突

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 15:45:03