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

求助:使用PowerShell批量移除文件名中的固定文本

批量移除文件名中固定文本的PowerShell实现方案

没问题,我来帮你搞定这个批量重命名的需求!先指出你现有代码里的小问题:直接遍历$filepath这个路径字符串是不行的,得先获取文件夹里的所有文件对象才行。下面是完整的可运行方案,我会一步步给你解释:

完整代码

# 目标文件夹路径
$folderPath = "C:\Folder 1"

# 获取文件夹内所有指定类型的文件(可选:只筛选.nfo/.jpg/.avi,避免误改其他文件)
$files = Get-ChildItem -Path $folderPath -File -Include *.nfo, *.jpg, *.avi

# 循环处理每个文件
foreach ($file in $files) {
    # 生成新文件名:移除"(My Little Pony)"文本
    $newFileName = $file.BaseName.Replace("(My Little Pony)", "") + $file.Extension
    
    # 拼接新的文件完整路径
    $newFilePath = Join-Path -Path $folderPath -ChildPath $newFileName
    
    # 执行重命名(先加-WhatIf参数测试,确认没问题后再删掉这个参数)
    Rename-Item -Path $file.FullName -Destination $newFilePath -WhatIf
}

关键部分解释

  • 获取文件:用Get-ChildItem的-File参数只取文件(排除文件夹),-Include指定要处理的三种扩展名,这样更安全,不会误操作其他类型文件。
  • 生成新文件名:
    • $file.BaseName是不带扩展名的文件名部分,比如file1(My Little Pony)-thumb;
    • 用.Replace("(My Little Pony)", "")把固定文本替换为空,实现移除效果;
    • 最后加上$file.Extension(比如.jpg),拼接成完整的新文件名。
  • 安全测试:代码里加了-WhatIf参数,运行时只会显示要执行的重命名操作,不会真的修改文件。确认所有新文件名符合预期后,删掉-WhatIf再重新运行就可以正式重命名了。

额外提示

如果你的文件名里有多余的空格(比如替换后出现file1 .nfo这种情况),可以在替换后再用.Trim()去掉首尾空格,修改这行:

$newFileName = ($file.BaseName.Replace("(My Little Pony)", "").Trim()) + $file.Extension

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 12:42:40