Я пытаюсь написать скрипт, который будет использоваться для переноса приложения с сервера на сервер и / или с одной буквы диска на другую.Моя цель - скопировать каталог из одного места, переместить его в другое, а затем запустить скрипт, чтобы отредактировать все экземпляры старого имени хоста, IP-адреса и буквы диска, чтобы отразить новое имя хоста, IP-адрес и букву диска нановый сервер.Похоже, это именно так:
ForEach($File in (Get-ChildItem $path\* -Include *.xml,*.config -Recurse)){
(Get-Content $File.FullName -Raw) -replace [RegEx]::Escape($oldhost),$newhost `
-replace [RegEx]::Escape($oldip),$newip `
-replace "$olddriveletter(?=:\Application)",$newDriveLetter |
Set-Content $File.FullName -NoNewLine
}
Единственная проблема, с которой я столкнулся, заключается в том, что все файлы имеют разные типы кодирования.Какой-то ANSI, какой-то UTF-8, какой-то Unicode и т. Д. Когда я запускаю скрипт, он сохраняет все как ANSI, и тогда мое приложение не работает.Я знаю, как добавить параметр кодирования, но есть ли способ сохранить одинаковую кодировку для каждого отдельного файла, не выписывая сценарий, определяющий каждый отдельный файл в каталоге и кодировку, которую имеет каждый отдельный файл?