如何对文件夹内的文件进行批量重命名?
文件夹文件批量重命名实操方案
1. 解决CMD导出文件名与资源管理器排序不一致问题
你遇到的排序偏差是因为CMD默认采用ASCII字典序排序,和资源管理器的自然数值排序逻辑不同,要导出和资源管理器展示顺序完全一致的文件名列表,推荐使用PowerShell命令导出:
- 打开目标文件夹,按住Shift点击鼠标右键,选择「在此处打开PowerShell窗口」
- 执行以下命令,导出的原始文件名列表会自动保存在当前文件夹下:
Get-ChildItem -File | Sort-Object { [regex]::Replace($_.Name, '\d+', { $args[0].Value.PadLeft(20) }) } | Select-Object -ExpandProperty Name | Out-File -FilePath "原始文件名列表.txt" -Encoding UTF8
该命令会按照资源管理器的自然排序逻辑导出文件名,不会出现排序偏差。
2. 校正后文件名列表批量重命名操作
前置要求
你的校正后的新文件名列表新文件名.txt的行顺序,必须和你导出的原始文件名列表的行顺序一一对应,保证第N行旧文件名对应第N行新文件名。
操作步骤
- 将
原始文件名列表.txt、新文件名.txt和所有待重命名的文件放在同一个文件夹内 - 同上述步骤打开当前文件夹的PowerShell窗口
- 执行以下批量重命名命令:
$oldNames = Get-Content "原始文件名列表.txt" -Encoding UTF8 $newNames = Get-Content "新文件名.txt" -Encoding UTF8 for ($i = 0; $i -lt $oldNames.Count; $i++) { if (Test-Path $oldNames[$i]) { Rename-Item -Path $oldNames[$i] -NewName $newNames[$i] } }
注意事项
- 操作前建议先把所有待重命名文件复制一份到其他文件夹做测试,确认命名规则无误后再操作原文件
- 若新文件名已包含文件后缀,不需要额外补充,若未包含需对应原始文件后缀统一补充到新文件名列表中
内容的提问来源于stack exchange,提问作者karenbel
相关产品推荐
相关产品推荐

