首页/博客/教程/批量删除文件名中的指定文字:3 种方法,不用逐个手改
教程入门10 分钟阅读

批量删除文件名中的指定文字:3 种方法,不用逐个手改

Renomee 团队

发布于 2026年9月30日

批量删除文件名中的指定文字:3 种方法,不用逐个手改

你有没有遇到这些情况:

  • 文件夹里 300 个 PDF,每个文件名都带着「办事指南」——只想留主题词,后缀统统删掉
  • 扫描仪输出了 200 张图片,文件名全带「Scanned_by_Epson_」前缀,想批量去掉
  • 从网盘下载的视频,文件名里有「【高清】」「【独家】」这类标签,想一次清干净
  • 设计稿命名乱了,几百个文件都有「_最终版」「_v2」「_副本」,想删掉这些后缀

这类需求和「清理特殊符号」不同——你要删的不是一类字符,而是某段固定文字。本文教你用 3 种方法搞定,最快的只需要一行命令。

和「删特殊字符」的区别:如果你要删的是括号、非法字符、Emoji 等一类符号,看这篇:批量删除文件名指定字符:去括号、删前几位、清特殊符号


3 种方法快速对比

你的情况推荐方法
少于 20 个文件,临时处理F2 手动改
有一点点命令行基础PowerShell(1 行命令,30 秒)
无基础但文件量大,或规则复杂Renomee(自然语言描述)
想要图形界面 + 实时预览PowerRename(需学简单正则)

方法一:PowerShell(最快,1 行命令)

适合有一点点命令行基础、或愿意复制粘贴命令的用户。

基础用法:删除固定文字

打开 PowerShell,切换到目标文件夹,执行:

cd "D:\目标文件夹"
dir | rename-item -NewName {$_.name -replace "要删除的文字",""}

实际示例:

# 删除文件名中的"办事指南"
cd "D:\政务文件"
dir | rename-item -NewName {$_.name -replace "办事指南",""}

# 删除文件名中的"_最终版"
dir | rename-item -NewName {$_.name -replace "_最终版",""}

# 删除文件名中的"Scanned_by_Epson_"前缀
dir | rename-item -NewName {$_.name -replace "Scanned_by_Epson_",""}

⚠️ 执行前建议先加 -WhatIf 预览,确认结果正确再去掉它:

dir | rename-item -NewName {$_.name -replace "办事指南",""} -WhatIf

进阶:区分大小写

默认不区分大小写。想只删「Final」不删「final」,把 -replace 改成 -creplace:

dir | rename-item -NewName {$_.name -creplace "Final",""}

进阶:同时删多段文字

dir | rename-item -NewName {
    $n = $_.name
    $n = $n -replace "_最终版",""
    $n = $n -replace "_副本",""
    $n = $n -replace "_v\d+",""   # 删 _v1、_v2、_v3...(需要正则)
    $n
}

进阶:删某个字符之后的所有内容

比如文件名是「报告_2026_draft.docx」,想删掉第一个 _ 之后的全部内容,只保留「报告」:

# 删除第一个下划线及其后面的所有内容(保留扩展名)
Get-ChildItem -Path "D:\目标文件夹" -File | ForEach-Object {
    $baseName = [System.IO.Path]::GetFileNameWithoutExtension($_.Name)
    $ext = $_.Extension
    $newBase = $baseName -replace '_.*$', ''
    if ($newBase -and $newBase -ne $baseName) {
        Rename-Item -Path $_.FullName -NewName ($newBase + $ext)
        Write-Host "✅ $($_.Name) → $($newBase + $ext)"
    }
}

💡 _.*$ 是正则表达式,意思是「下划线 + 之后所有字符直到结尾」。把 _ 换成任何其他字符,效果相同。


方法二:PowerRename(图形界面,支持实时预览)

适合不想用命令行、但愿意学一点点正则的用户。PowerRename 是微软 PowerToys 内置的免费工具。

安装:在 Microsoft Store 搜索「PowerToys」免费安装。安装后右键文件→「使用 PowerRename 重命名」。

删除固定文字(最简单)

  1. 选中所有目标文件,右键→「使用 PowerRename 重命名」
  2. 搜索框:输入要删除的文字,比如 办事指南
  3. 替换框:留空(替换为空 = 删除)
  4. 不用勾选正则表达式
  5. 点击预览确认,再点重命名执行
字段输入
搜索办事指南
替换为(留空)
使用正则表达式❌ 不需要

删除带序号的后缀(需要正则)

比如删掉文件名末尾的 _v1、_v2、_v23 这类版本号:

字段输入
搜索_v\d+
替换为(留空)
☑ 使用正则表达式勾选

正则解释:\d+ 表示「一个或多个数字」。

删除某个字符之后的所有内容

比如删掉所有文件名里第一个 _ 之后的内容:

字段输入
搜索_.*
替换为(留空)
☑ 使用正则表达式勾选
☑ 仅匹配文件名(不含扩展名)勾选

方法三:Renomee(零学习成本)

适合文件量大、规则复杂、或完全不想学命令行的用户。用中文描述你要做什么,AI 自动处理。

操作示例:

文件:我要XX办事指南.pdf、我要YY办事指南.pdf、我要ZZ办事指南.pdf

输入:

删除所有文件名中的"办事指南"这四个字

结果:我要XX.pdf、我要YY.pdf、我要ZZ.pdf


更复杂的规则也能处理:

删除文件名末尾的"_最终版"、"_副本"和"_v"加数字这几种后缀,
保留主体文件名,去掉多余空格

Renomee 的优势:

  • ✅ 执行前实时预览每个文件的「改前 → 改后」结果
  • ✅ 一键撤销,误操作可恢复
  • ✅ 支持描述复杂规则,无需记语法

立即下载 Renomee →


常见场景参考

场景 1:删除所有文件名中的下载站水印

文件:【4K蓝光】钢铁侠.mkv、【独家】复仇者联盟.mkv

PowerShell:

# 删除【】及其中的内容
dir | rename-item -NewName {$_.name -replace "【.*?】",""}

Renomee:

删除文件名里【】和里面的内容,保留主标题

结果:钢铁侠.mkv、复仇者联盟.mkv


场景 2:删掉文件名里的日期段

文件:合同_20260101_甲方.pdf、合同_20261231_乙方.pdf

PowerShell:

# 删除 8 位数字日期(含前面的下划线)
Get-ChildItem -File | ForEach-Object {
    $baseName = [System.IO.Path]::GetFileNameWithoutExtension($_.Name)
    $ext = $_.Extension
    $newBase = $baseName -replace '_\d{8}', ''
    if ($newBase -ne $baseName) {
        Rename-Item -Path $_.FullName -NewName ($newBase + $ext)
    }
}

Renomee:

删除文件名中的 8 位数字日期(格式如 20260101)以及前面的下划线

结果:合同_甲方.pdf、合同_乙方.pdf


场景 3:删除多个不同的固定后缀

文件名可能有 _最终版、_Final、_v2、_副本 等,想一次全清:

PowerShell:

Get-ChildItem -File | ForEach-Object {
    $baseName = [System.IO.Path]::GetFileNameWithoutExtension($_.Name)
    $ext = $_.Extension
    $newBase = $baseName
    $newBase = $newBase -replace "_最终版|_Final|_副本", ""
    $newBase = $newBase -replace "_v\d+", ""
    $newBase = $newBase.Trim()
    if ($newBase -and $newBase -ne $baseName) {
        Rename-Item -Path $_.FullName -NewName ($newBase + $ext)
        Write-Host "✅ $($_.Name) → $($newBase + $ext)"
    }
}

Renomee:

删除文件名末尾的"_最终版"、"_Final"、"_副本"和"_v"加数字这几种后缀,
保留主体文件名,去掉多余空格

结果:报告.docx、设计稿.psd、合同.pdf


场景 4:只删文件名开头或结尾的指定文字

文件:草稿_项目计划.docx、草稿_季度汇报.pptx

PowerShell:

# 只删开头的"草稿_"(其他位置的不动)
dir | rename-item -NewName {$_.name -replace "^草稿_",""}

# 只删结尾的"_草稿"(扩展名前)
Get-ChildItem -File | ForEach-Object {
    $base = [System.IO.Path]::GetFileNameWithoutExtension($_.Name)
    $ext = $_.Extension
    $newBase = $base -replace "_草稿$", ""
    if ($newBase -ne $base) { Rename-Item $_.FullName ($newBase + $ext) }
}

正则解释:^ 匹配开头,$ 匹配结尾(不含扩展名时需单独处理 BaseName)。

Renomee:

删除文件名开头的"草稿_",其他位置不动

结果:项目计划.docx、季度汇报.pptx


执行前的 3 件事

  1. 备份:执行任何批量操作前,先复制一份目标文件夹
  2. 先预览:PowerShell 加 -WhatIf,PowerRename 看预览栏,Renomee 确认改前/改后列表
  3. 检查重名:删掉固定文字后,多个文件可能变成同名——Windows 会报错并跳过。建议在预览阶段检查

常见问题

Q:删完文件名只剩扩展名(比如 .pdf)怎么办?

说明原文件名全部由你要删的文字组成。

  • PowerShell:在脚本里加判断,$newBase 为空时跳过,保留原文件名:
if ($newBase -and $newBase -ne $baseName) { Rename-Item ... }
  • Renomee:会自动检测这种情况,预览列表里会标记「文件名为空,已跳过」,执行时不会生成空文件名。

Q:想删的文字只出现在一部分文件里,其他文件不影响吗?

不影响。

  • PowerShell:-replace 找不到匹配时直接返回原字符串,文件名不变,不报错。
  • Renomee:预览列表里匹配不到的文件会标记「无变化」,不会被误改。

Q:文件名里有括号或特殊字符,PowerShell 报错怎么办?

PowerShell 的 -replace 用正则解析搜索词,括号 ( ) 在正则里有特殊含义,直接写会报错。用 [regex]::Escape() 转义:

$pattern = [regex]::Escape("(副本)")
dir | rename-item -NewName {$_.name -replace $pattern, ""}

Renomee 不需要处理这个问题:直接用中文描述即可,输入「删除文件名中的(副本)」,AI 会自动处理转义,不需要你了解正则语法。


总结

你的情况最快方法
熟悉命令行PowerShell 1 行命令,30 秒搞定
图形界面,简单规则PowerRename 搜索替换
规则复杂或完全不想学Renomee 自然语言描述

相关阅读

标签

#批量重命名#文件名删除指定文字#批量改名#Windows#PowerRename#PowerShell

关于作者

Renomee 团队 是 Renomee 的内容贡献者。