При работе с текстовыми файлами в PowerShell есть некоторые особенности. Например, если считать текстовый файл с помощью командлета Get-Content, то его содержимое будет возвращено в виде массива строк, разделенных символом новой строки.
Для примера возьмем текстовый файл, поместим его содержимое в переменную и проверим тип данных:
$a = Get-Content C:\files\file.txt
Как видите, переменная имеет тип данных Object[], т.е. массив.
Обычно это не имеет значения, но иногда требуется считать файл одной строкой, для чего существует несколько способов.
Проще всего воспользоваться командлетом Get-Content с параметром Raw. Он игнорирует все символы новой строки и выводит содержимое файла в одну строку. Например:
$b = Get-Content C:\files\file.txt -Raw
Обратите внимание, что параметр Raw появился в третьей версии PowerShell. Если вдруг у вас более ранняя версия, то можно воспользоваться статическим методом ReadAllText класса File:
$c = [System.IO.File]::ReadAllText(″C:\files\file.txt″)
Ну и для разнообразия еще один способ. Можно считать файл стандартным способом и затем передать его командлету Out-String, например так:
$d = Get-Content C:\files\file.txt | Out-String
В принципе неважно, каким из этих методов воспользоваться, в результате все равно получаем строку.