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

如何批量删除文件名中最后一个#之后的所有内容?

如何批量删除文件名中最后一个#之后的所有内容?

嗨,我完全懂你的需求——要批量处理一堆文件名,不管里面有多少个#,只保留最后一个#之前的部分,对吧?下面分不同操作系统给你具体的可行方案,都是经过验证的实用方法:

Windows 系统(用 PowerShell)

  1. 打开 PowerShell,先导航到你的文件所在文件夹,比如:
cd "C:\Users\你的用户名\Documents\目标文件夹"
  1. 执行下面的批量重命名命令:
Get-ChildItem | Where-Object { $_.Name -match '#' } | Rename-Item -NewName {
    # 找到最后一个#的位置
    $lastHashPos = $_.Name.LastIndexOf('#')
    # 截取到这个位置之前的内容,同时去掉末尾多余的空格
    $_.Name.Substring(0, $lastHashPos).TrimEnd()
}

这个命令会自动筛选出名字里包含#的文件,精准定位最后一个#的位置,然后截取前面的部分作为新文件名,还会自动清理掉最后一个#前可能存在的多余空格。

Linux/macOS 系统(用终端)

  1. 打开终端,进入目标文件夹:
cd /Users/你的用户名/Documents/目标文件夹
  1. 运行下面的批量重命名脚本:
for file in *\#*; do
    # 匹配并移除最后一个#及其后面的所有内容
    newname="${file%\#*}"
    # 清理末尾可能的空格
    newname="${newname% }"
    # 执行重命名
    mv "$file" "$newname"
done

这里用到了 Bash 的参数扩展特性,${file%\#*}会从文件名末尾开始匹配第一个(也就是最后一个出现的)#及其后续内容,直接替换为空,完美满足你的需求。

小提醒

  • 建议先在测试文件夹里放几个样例文件试一遍,确认效果后再处理真实文件,避免误操作
  • 上面的脚本已经考虑了文件名包含空格、特殊字符的情况,不用担心报错

备注:内容来源于stack exchange,提问作者Mark C

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 08:50:26