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

如何批量重命名Windows文件以移除特定字符串?(PowerShell/Linux方案)

批量简化文件名的PowerShell与Linux方案

PowerShell 实现方法

针对这类文件名格式(原文件名后跟随_[ID-开头的后缀),可以通过正则匹配批量截断后缀:

# 仅处理当前目录下的文件
Get-ChildItem -Filter "*_[ID-*" | Rename-Item -NewName { $_.Name -replace "_\[ID-.*", "" }

# 如果需要递归处理子目录中的文件,添加 -Recurse 参数
Get-ChildItem -Filter "*_[ID-*" -Recurse | Rename-Item -NewName { $_.Name -replace "_\[ID-.*", "" }

命令说明

  • Get-ChildItem -Filter "*_[ID-*":筛选出文件名包含_[ID-的目标文件
  • -replace "_\[ID-.*", "":用正则匹配从_[ID-开始的所有内容,将其替换为空,保留原始文件名部分

Linux 实现方法

Linux下可根据系统预装的rename版本选择不同命令:

方法1:Perl版rename(多数发行版默认)

直接用正则替换批量修改:

# 处理当前目录文件
rename 's/_\[ID-.*//' *_\[ID-*

# 递归处理所有子目录文件
find . -type f -name "*_[ID-*" -exec rename 's/_\[ID-.*//' {} +

方法2:util-linux版rename(部分轻量发行版)

若系统是util-linux版本的rename,可结合参数扩展实现:

find . -type f -name "*_[ID-*" -exec sh -c 'mv "$0" "${0%_[ID-*}"' {} \;

命令说明

  • 正则表达式s/_\[ID-.*//:匹配并删除_[ID-及之后的所有字符
  • ${0%_[ID-*}:利用Shell参数扩展,截取文件名中_[ID-之前的部分作为新文件名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 18:00:09