PowerShell. Сохраняем файл в UTF-8 без BOM

/ Просмотров: 3180
PowerShell. Сохраняем файл в UTF-8 без BOM

Для автоматической настройки Thunderbird я использую подготовленный шаблон в котором настроены все параметры специфичные для нашей организации. С помощью PowerShell`а я добавляю в этот шаблон, только полное имя пользователя и его логин. При этом столкнулся с проблемой - конечный конфигурационный файл должен быть в формате UTF-8 но без BOM (три байта в начале файла).

Делаем так:

// Открываем исходный файл (он в UTF-8)
$file = Get-Content "default.cfg" -Encoding UTF8
// Вносим какие-то изменения
$file = $file.replace("{smtpusername}", $SMTPUserName) 
$file = $file.replace("{userfullname}", $Name) 
// Сохраняем в конечный файл
$Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding($False)
[System.IO.File]::WriteAllLines("nikonoroveb.cfg", $file, $Utf8NoBomEncoding)