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

如何移除文件名中方括号内的随机字符串(Bat/PowerShell脚本)

问题解决:批量移除文件名中方括号包裹的随机字符串

问题场景

编辑.bat脚本用于种子下载后重命名文件,所有文件名包含方括号包裹的随机字符串(例如:Episode 13 [EA2614CB].mkv)。尝试移除该字符串时,添加文件扩展名报错,不添加则文件无后缀无法播放。

错误原因

原REM Test段的PowerShell命令存在两个核心问题:

  1. 语法错误:$_.Extension被放在了Rename-Item的脚本块外部,导致无法正确拼接扩展名
  2. 正则冗余:无需先将方括号替换为圆括号,直接匹配方括号及内部内容即可完成移除

修复后的核心代码

替换原REM Test段的命令为以下内容(同时支持.mkv和.mp4,减少重复执行):

powershell -command "Get-ChildItem -Recurse -Filter *.mkv,*.mp4 | Rename-Item -NewName { $_.BaseName -replace '\[.+?\]','' + $_.Extension }"

代码说明

  • \[.+?\]:正则表达式精准匹配方括号及其中的任意内容(\[匹配左方括号,.+?匹配任意字符且尽可能少匹配,避免误删其他内容,\]匹配右方括号)
  • 脚本块内直接完成替换后拼接$_.Extension,语法正确,确保文件保留原有扩展名

进一步优化建议

原脚本中针对.mkv和.mp4的重复命令可以合并,减少冗余:

  • 合并Download Tags段:
powershell -command "Get-ChildItem -Recurse -Filter *.mkv,*.mp4 | Rename-Item -NewName { $_.BaseName.Replace('(1080p)','').Replace('[SubsPlease]','') + $_.Extension }"
  • 合并Season Tags段(用正则替代大量重复的Replace):
powershell -command "Get-ChildItem -Recurse -Filter *.mkv,*.mp4 | Rename-Item -NewName { $_.BaseName -replace '\.S(\d{2})E',' S$1 E' + $_.Extension }"
  • 合并Clean Up段(用正则一次性清理多余空格):
powershell -command "Get-ChildItem -Recurse -Filter *.mkv,*.mp4 | Rename-Item -NewName { $_.BaseName -replace '\s+',' ' + $_.Extension }"

完整优化后的脚本

@echo off

REM 切换到下载所在盘符
B:

REM 进入下载目录
cd "\Anime\.Purgatory"

REM 移除常见下载标签(合并mkv和mp4处理)
powershell -command "Get-ChildItem -Recurse -Filter *.mkv,*.mp4 | Rename-Item -NewName { $_.BaseName.Replace('(1080p)','').Replace('[SubsPlease]','') + $_.Extension }"

REM 移除方括号包裹的随机字符串
powershell -command "Get-ChildItem -Recurse -Filter *.mkv,*.mp4 | Rename-Item -NewName { $_.BaseName -replace '\[.+?\]','' + $_.Extension }"

REM 格式化季集编号(用正则替代重复Replace)
powershell -command "Get-ChildItem -Recurse -Filter *.mkv,*.mp4 | Rename-Item -NewName { $_.BaseName -replace '\.S(\d{2})E',' S$1 E' + $_.Extension }"

REM 清理多余空格
powershell -command "Get-ChildItem -Recurse -Filter *.mkv,*.mp4 | Rename-Item -NewName { $_.BaseName -replace '\s+',' ' + $_.Extension }"

REM 移动文件到最终目录(剪切粘贴)
Robocopy "B:\Anime\.Purgatory" B:\Anime\.Heaven /s /mov

pause

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 05:10:30