Windows 初学者如何用 PowerShell 批量重命名文件并预览结果

内容总结生成中
你看见的,不仅是一个总结

你可以在 Windows 10 或 Windows 11 的 PowerShell 中,为指定文件夹里的某一类文件统一添加前缀,并先查看每个文件的新旧名称,再决定是否执行。下面以只处理当前文件夹中的 .jpg 图片为例;操作前先备份,过程中不要选错文件夹,也不要把预览结果当成已经完成的改名。

先备份并核对待改名文件的示意图

1. 先备份并选定文件

先在文件资源管理器中,将要整理的文件夹复制到另一个位置作为备份。不要把备份放在待整理文件夹里面,以免后续操作时一并选中。

打开 PowerShell,先设置目标文件夹路径。把示例路径替换成你自己的文件夹路径:

$folder = 'C:Users你的用户名Pictures待整理'

确认路径无误后,列出这个文件夹里直接包含的 .jpg 文件:

$files = Get-ChildItem -LiteralPath $folder -File -Filter '*.jpg'
$files | Select-Object Name

这里没有使用递归选项,因此不会进入子文件夹。先检查显示的文件名:如果列表为空,或出现了不该改名的文件,就先不要继续。需要整理 .png 图片时,可把筛选条件改成 *.png;一次操作先选定一种扩展名,更容易核对。

2. 生成改名预览

下面的例子会给每个目标文件添加 旅行_ 前缀,同时保留原有扩展名。你可以把前缀换成适合自己的内容:

$prefix = '旅行_'

$plan = $files | ForEach-Object {
    $newName = $prefix + $_.BaseName + $_.Extension

    [pscustomobject]@{
        OldName = $_.Name
        NewName = $newName
        Source  = $_.FullName
        Target  = Join-Path $_.DirectoryName $newName
    }
}

$plan | Format-Table OldName, NewName -AutoSize

例如,IMG_001.jpg 会预览为 旅行_IMG_001.jpg。此时只是生成并显示改名计划,还没有更改文件。

检查两列名称,尤其留意前缀是否正确、扩展名是否保留,以及列表中是否包含不想处理的文件。只要有一项不符合预期,就先不要执行。

3. 检查目标名称是否已被占用

如果文件夹里已经有某个文件使用了拟定的新名称,改名就可能失败。先检查计划中的目标路径:

$conflicts = $plan | Where-Object {
    Test-Path -LiteralPath $_.Target
}

$conflicts | Format-Table OldName, NewName, Target -AutoSize

如果显示了冲突项,先停止。你可以更换前缀,或把已有的同名文件移到其他位置;处理后重新生成计划并再次检查。只有冲突列表为空,才继续下一步。

4. 用 WhatIf 再预演一次

运行下面的命令,PowerShell 会显示拟执行的操作,但不会真的重命名文件:

$plan | ForEach-Object {
    Rename-Item -LiteralPath $_.Source -NewName $_.NewName -WhatIf
}

对照显示结果确认源文件路径和新文件名都正确。-WhatIf 是这一步的预演开关;看到预演输出不代表文件已经改名。

执行前通过预演逐项核对名称的示意图

5. 确认后执行改名

只有在目标文件、预览名称和冲突检查都确认无误后,才运行实际改名命令。它与上一步相同,但去掉了 -WhatIf:

$plan | ForEach-Object {
    Rename-Item -LiteralPath $_.Source -NewName $_.NewName
}

改名过程中如果出现报错,先不要反复运行命令。可能已有一部分文件成功改名,重新执行时,计划里的源文件路径就可能不再存在。

6. 核对结果与出错处理

执行后可以检查计划中的新文件名是否都存在:

$plan | ForEach-Object {
    [pscustomobject]@{
        Expected = $_.NewName
        Exists   = Test-Path -LiteralPath $_.Target
    }
} | Format-Table -AutoSize

Exists 为 True 表示对应目标路径存在;若有 False,回到文件夹中确认该文件当前的名称,不要只凭计划再次改名。也可以在文件资源管理器中查看目标文件夹,检查数量、名称和扩展名。

常见情况可以这样处理:

  • 预览名单不对:不要执行改名。重新设置 $folder 或筛选条件,再生成预览。
  • 发现名称冲突:更换前缀或处理已有同名文件,然后重新生成计划并检查。
  • 扩展名看起来改变了:本例按 BaseName + Extension 组合新名称,会保留原扩展名。执行后仍应检查完整文件名;在资源管理器中查看时,可确认是否显示文件扩展名。
  • 执行时想停止:按 Ctrl+C 可以中断正在运行的命令,但中断前已完成的改名不会自动撤销。停止后先检查文件夹,确认哪些文件已经改名。
  • 需要恢复:优先用事先准备的备份恢复。若只需恢复少数文件,可在资源管理器中根据原名与新名逐个改回;批量恢复前先确认每个文件的当前名称,并检查原名称是否已被其他文件占用。

这套流程适合在单个文件夹内按统一规则改名。操作前备份、预览、检查冲突,再执行并核对结果,能减少选错文件或改错名称的风险。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布或转载收集发布,发布内容都是作者本人发布,与本站无关。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
9 条回复 A文章作者 M管理员
  1. 紫雾之影

    先备份再操作,这个提醒很实用

  2. 夜语林

    想问下文件名里有中文也能正常处理吗

  3. 夜的沉思者

    同名文件冲突这块平时确实容易忽略

  4. 奶芙小团团

    原来没加递归就不会碰到子文件夹,放心多了

  5. 银河旅人Ella

    预览这一步真的不能省,手滑改错很麻烦

❯
个人中心
购物车
优惠劵
有新私信 私信列表
搜索