Get-Content может быть неоптимальным, поскольку он обрабатывает входной файл построчно (по крайней мере, по умолчанию, если вы не используете Raw
переключатель, как описано ниже), и может вызвать изменение конца строки (например, если вы переместите текстовые файлы между системами Unix и Windows). У меня были серьезные проблемы со сценарием только из-за этого, и потребовалось около часа, чтобы найти точную причину. Подробнее об этом в этом посте . Из-за этого поведения, Get-Content не лучший выбор, если производительность имеет значение.
Вместо этого вы можете использовать PowerShell в комбинации классов .NET (если в вашей системе установлена версия .NET Framework):
$sr = New-Object System.IO.StreamReader($infile) $sw = New-Object System.IO.StreamWriter($outfile, $false, [System.Text.Encoding]::Default) $sw.Write($sr.ReadToEnd()) $sw.Close() $sr.Close() $sw.Dispose() $sr.Dispose()
Или даже проще, используйте Raw
переключатель, как описано здесь, чтобы избежать этих накладных расходов и прочитайте текст в одном блоке:
Get-Content $inFile -Raw