Главная > Powershell > Чтение файла одной строкой в Powershell

Чтение файла одной строкой в Powershell

Если в Powershell читать файл через командлет Get-Content, то по умолчанию он будет читаться как массив строк. Но бывают случаи, когда нужно прочесть файл как одну строку. В Powershell 2.0 для этого приходилось действовать не совсем очевидным способом. Начиная с Powershell 3.0 стало намного проще.

Возьмём для примера простой текстовый файл:

$FilePath = 'C:\test.txt'
'раз', 'два', 'три' | Out-File -FilePath $FilePath

Get-Content $FilePath
раз
два
три

Таким способом прочитанный файл представляет собой массив строк, состоящий из трёх элементов:

# Смотрим тип
$File.GetType()
IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     Object[]                                 System.Array

# Смотрим длину (количество элементов)
$File.Length # В данном случае равносильно $File.Count
3

Powershell 2.0

Для того же, чтобы прочитанный файл представлял из себя строку в Powershell 2.0 нужно было использовать метод ReadAllText .NET класса File:

$File = [System.IO.File]::ReadAllText($FilePath)

# Смотрим тип
$File.GetType()
IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     String                                   System.Object

# Смотрим длину
$File.Length
15

Powershell 3.0 и выше

Начиная с Powershell 3.0 у командлета Get-Content появился параметр –Raw, позволяющий сделать то же самое:

$File = Get-Content $FilePath -Raw

# Смотрим тип
$File.GetType()
IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     String                                   System.Object

# Смотрим длину
$File.Length
15
Реклама
Рубрики:Powershell Метки: ,
  1. Комментариев нет.
  1. No trackbacks yet.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: