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

如何用PowerShell批量将.mbt文件从UTF-8 BOM转为无BOM UTF-8

PowerShell批量将.mbt文件转为UTF-8无BOM格式脚本解决方案

最终可直接使用的脚本

<#
.SYNOPSIS
批量将指定目录下所有.mbt文件从UTF-8 BOM转为UTF-8无BOM格式,直接覆盖原文件
#>
[CmdletBinding()]
param(  
    [Parameter(Mandatory=$true, HelpMessage="请输入存放.mbt文件的目录完整路径")]
    [string]$TargetDir
)

# 定义无BOM的UTF8编码对象
$Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False

# 遍历目标目录下所有扩展名为.mbt的文件
Get-ChildItem -Path $TargetDir -Filter "*.mbt" -File | ForEach-Object {
    # 读取文件全部内容,-Raw参数保证按完整字符串读取不拆分行
    $fileContent = Get-Content $_.FullName -Raw
    # 直接将内容以无BOM UTF8编码写回原文件
    [IO.File]::WriteAllText($_.FullName, $fileContent, $Utf8NoBomEncoding)
    Write-Host "已处理文件:$($_.FullName)"
}

Write-Host "所有.mbt文件处理完成"

使用方法

  • 把上面的代码保存为Remove-MbtBom.ps1文件
  • 打开PowerShell,执行命令:.\Remove-MbtBom.ps1 -TargetDir "你的.mbt文件所在目录完整路径",示例:.\Remove-MbtBom.ps1 -TargetDir "C:\Users\slavkovs\Desktop\test"
  • 执行后会自动遍历目录下所有.mbt文件,直接修改编码且不改变文件名

注意事项

  • 建议执行脚本前先备份所有.mbt文件,避免操作失误导致数据丢失
  • 如果需要处理子目录内的.mbt文件,只需要给Get-ChildItem命令加上-Recurse参数即可:Get-ChildItem -Path $TargetDir -Filter "*.mbt" -File -Recurse
  • 脚本不会修改文件内容和文件名,仅移除UTF8 BOM头,处理后的文件可直接导入目标软件使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 11:21:03