Заметки о Windows и других программных продуктах Microsoft...

Как в PowerShell считать файл одной строкой

Как в PowerShell считать файл одной строкой

При работе с текстовыми файлами в PowerShell есть некоторые особенности. Например, если считать текстовый файл с помощью командлета Get-Content, то его содержимое будет возвращено в виде массива строк, разделенных символом новой строки.

Для примера возьмем текстовый файл,  поместим его содержимое в переменную и проверим тип данных:

$a = Get-Content C:\files\file.txt

Как видите, переменная имеет тип данных Object[], т.е. массив.

формат данных по умолчанию

 

Обычно это не имеет значения, но иногда требуется считать файл одной строкой, для чего существует несколько способов.

Проще всего воспользоваться командлетом Get-Content с параметром Raw. Он игнорирует все символы новой строки и выводит содержимое файла в одну строку. Например:

$b = Get-Content C:\files\file.txt -Raw

Get-Content с ключом -Raw

 

Обратите внимание, что параметр Raw появился в третьей версии PowerShell. Если вдруг у вас более ранняя версия, то можно воспользоваться статическим методом ReadAllText класса File:

$c = [System.IO.File]::ReadAllText(″C:\files\file.txt″)

статический метод ReadAllText

 

Ну и для разнообразия еще один способ. Можно считать файл стандартным способом и затем передать его командлету Out-String, например так:

$d = Get-Content C:\files\file.txt | Out-String

конвертирование с помощью Out-String

 

В принципе неважно, каким из этих методов воспользоваться, в результате все равно получаем строку.

 
 
Комментарии

Пока нет комментариев.