You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何根据文本文件指定顺序批量重命名文件夹中的文件

按指定顺序批量重命名文件

没问题,我来帮你搞定这个按文本列表顺序批量重命名的需求!既然你已经熟悉单个文件的Rename-Item命令,那我们只需要把它和循环、文件读取结合起来就能实现批量操作。

实现思路

  1. 读取记录正确顺序的文本文件,提取每个文件名的排列序列
  2. 遍历这个序列,按索引(从1开始)给每个文件赋予新的序号名称
  3. 加入必要的存在性检查,避免因文件缺失或路径错误导致报错

PowerShell 脚本实现

下面是完整的可直接使用的脚本,你只需要替换对应的路径即可:

# ------------ 请修改这里的路径 ------------
# 存放待重命名文件的目标文件夹路径
$targetFolder = "C:\Your\Files\Folder"
# 记录文件正确顺序的文本文件路径
$orderFile = "C:\Path\To\Your\file_order.txt"
# ----------------------------------------

# 读取文本文件中的文件名,自动跳过空白行
$fileList = Get-Content -Path $orderFile | Where-Object { $_ -notmatch '^\s*$' }

# 遍历列表,按顺序执行重命名
for ($index = 0; $index -lt $fileList.Count; $index++) {
    $oldFileName = $fileList[$index]
    # 生成新文件名:这里提供两种规则,选你需要的一种即可
    # 规则1:去掉原扩展名,直接命名为纯序号(比如 car.json → 1)
    $newFileName = ($index + 1).ToString()
    # 规则2:保留原扩展名,命名为「序号+扩展名」(比如 car.json → 1.json)
    # $newFileName = ($index + 1).ToString() + [System.IO.Path]::GetExtension($oldFileName)

    # 拼接完整的旧文件路径和新文件路径
    $oldFilePath = Join-Path -Path $targetFolder -ChildPath $oldFileName
    $newFilePath = Join-Path -Path $targetFolder -ChildPath $newFileName

    # 检查文件是否存在,避免无意义报错
    if (Test-Path -Path $oldFilePath) {
        # 执行重命名,-Force 参数可覆盖同名文件(如果存在的话)
        Rename-Item -Path $oldFilePath -NewName $newFilePath -Force
        Write-Host "✅ 已完成重命名: $oldFileName → $newFileName"
    } else {
        Write-Warning "⚠️ 未找到文件: $oldFileName,请检查路径或文件名是否正确"
    }
}

Write-Host "`n🎉 重命名任务全部完成!"

使用说明

  1. 修改路径:把脚本里的$targetFolder$orderFile替换成你自己的实际路径
  2. 选择命名规则:根据你的需求注释/取消注释对应的$newFileName
  3. 测试优先:建议先找几个测试文件在临时文件夹里跑一遍脚本,确保效果符合预期
  4. 文本文件要求:确保你的顺序文本文件里每行一个文件名,不要有多余的空格或特殊字符

注意事项

  • 如果文件名包含空格、中文或特殊字符,脚本依然可以正常工作,Join-Path会自动处理路径拼接
  • -Force参数会强制覆盖同名文件,如果目标文件夹里已经有12这类序号命名的文件,会被替换,执行前请确认无重要文件重名

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

火山引擎 最新活动