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

如何批量删除文件名末尾n个字符?PowerShell脚本执行无结果求助

问题分析与解决方法

你的脚本没生效的核心问题是错误使用了TrimEnd方法:

  • PowerShell的字符串TrimEnd()方法是用来移除末尾指定的字符集合,而非固定长度的字符。你传入数字2的用法完全不符合该方法的要求,导致操作无效果。
  • 另外,直接操作$_.Name会把扩展名也包含进去,即便TrimEnd用法正确,也可能破坏文件扩展名。

正确的脚本写法

方法1:按固定长度截取文件名(通用移除末尾2个字符)

适用于所有需要去掉文件名部分最后2个字符的场景:

Get-ChildItem | Rename-Item -NewName { $_.BaseName.Substring(0, $_.BaseName.Length - 2) + $_.Extension }
  • $_.BaseName:获取不带扩展名的文件名(比如a01mm)
  • Substring(0, 长度-2):截取前n-2个字符,得到a01
  • 拼接原扩展名$_.Extension(即.txt),最终得到a01.txt

方法2:正则精准替换(针对末尾的mm)

如果只需要移除文件名末尾的mm,用正则匹配更精准:

Get-ChildItem | Rename-Item -NewName { $_.Name -replace 'mm\.txt$', '.txt' }

或者针对文件名部分替换:

Get-ChildItem | Rename-Item -NewName { ($_.BaseName -replace 'mm$', '') + $_.Extension }

内容的提问来源于stack exchange,提问作者Michael van Zuuren

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 13:33:15