PowerShell:
Чтение текстового файла

Как это сделать:

Давайте начнем с основ! Вот как вы можете читать текстовый файл в PowerShell:

# Получение содержимого файла
$content = Get-Content -Path "C:\путь\к\вашему\файлу.txt"
# Вывод содержимого в консоль
Write-Output $content

Пример вывода может выглядеть так, если ваш файл содержит несколько строк текста:

Привет, PowerShell!
Конец файла.

Теперь хотите читать построчно?

# Чтение файла построчно
$lines = Get-Content -Path "C:\путь\к\вашему\файлу.txt" -ReadCount 0
foreach ($line in $lines) {
    Write-Output $line
}

Тот же пример вывода, что и выше, но обрабатывается по одной строке за раз.

Подробный Разбор

Задолго до PowerShell, командные инструменты вроде cat в системах, подобных UNIX, или type в DOS, были выбором для чтения файлов. Get-Content в PowerShell — это сегодняшний острый инструмент для этого, с дополнительными преимуществами, такими как чтение построчно, что помогает избежать перегрузки памяти огромными файлами.

Помимо Get-Content, у нас есть классы .NET для большего контроля — встречайте System.IO.StreamReader:

$stream = [System.IO.StreamReader] "C:\путь\к\вашему\файлу.txt"
try {
    while ($line = $stream.ReadLine()) {
        Write-Output $line
    }
}
finally {
    $stream.Close()
}

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

Альтернативы? Ну, вы могли бы использовать Import-Csv для файлов CSV или ConvertFrom-Json для JSON, если хотите перенести данные в структурированные объекты. Но придерживайтесь Get-Content для работы с сырым текстом.

Смотрите также

Ознакомьтесь с официальной документацией для обнаружения больших возможностей: