【发布时间】:2021-08-27 06:01:24
【问题描述】:
我在一个目录中有许多扩展名为 .mbt 的文件,目前我的同事使用 notepad++ 编辑每个文件以将编码从 UTF-8 BOM 更改为 UTF-8 非常耗时,因为这些文件会进一步导入软件和不适用于编码 UTF-8 BOM。
所以我找到了一个 powershell 脚本,它将脚本中指定的文件替换为具有正确编码的新文件,但因为它不能解决我的问题,并且由于我对 powershell 脚本缺乏了解,我无法弄清楚如何制作它用另一个文件替换文件而不更改其名称,但只更改编码并对指定目录中的所有文件执行此操作。
这是执行我解释的当前代码:
function Remove-BomFromFile ($OldPath, $NewPath)
{
$Content = Get-Content $OldPath -Raw
$Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False
[IO.File]::WriteAllLines($NewPath, $Content, $Utf8NoBomEncoding)
}
$Path = "C:\Users\slavkovs\Desktop\test\Z_00154_.mbt"
$NewPath = "C:\Users\slavkovs\Desktop\test\Z_00154_New.mbt"
Remove-BomFromFile -OldPath $Path -NewPath $NewPath
[CmdletBinding()]
param(
[Parameter(Mandatory=$true)]
[string]$path,
[Parameter(Mandatory=$false)]
[string]$dest = $path,
[Parameter(Mandatory=$true)]
[string]$encoding
)
【问题讨论】:
标签: powershell encoding