Get-Content
Получает содержимое элемента в указанном расположении.
Синтаксис
Get-Content
[-Path] <string[]>
[-ReadCount <long>]
[-TotalCount <long>]
[-Tail <int>]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-UseTransaction]
[-Delimiter <string>]
[-Wait]
[-Raw]
[-Encoding <FileSystemCmdletProviderEncoding>]
[-Stream <string>]
[<CommonParameters>]
Get-Content
-LiteralPath <string[]>
[-ReadCount <long>]
[-TotalCount <long>]
[-Tail <int>]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-UseTransaction]
[-Delimiter <string>]
[-Wait]
[-Raw]
[-Encoding <FileSystemCmdletProviderEncoding>]
[-Stream <string>]
[<CommonParameters>]
Описание
Командлет Get-Content
получает содержимое элемента в расположении, указанном путем, например текст в файле или содержимое функции. Для файлов содержимое считывается по одной строке за раз и возвращает коллекцию объектов, каждый из которых представляет строку содержимого.
Начиная с PowerShell 3.0, Get-Content
можно также получить указанное количество строк в начале или конце элемента.
Примеры
Пример 1. Получение содержимого текстового файла
В этом примере возвращается содержимое файла в текущем каталоге. Файл LineNumbers.txt
содержит 100 строк в формате Это строка X и используется в нескольких примерах.
1..100 | ForEach-Object { Add-Content -Path .\LineNumbers.txt -Value "This is line $_." }
Get-Content -Path .\LineNumbers.txt
This is Line 1
This is Line 2
...
This is line 99.
This is line 100.
Значения массива от 1 до 100 отправляются по конвейеру в ForEach-Object
командлет . ForEach-Object
использует блок скрипта с командлетом Add-Content
для создания LineNumbers.txt
файла. Переменная $_
представляет значения массива по мере отправки каждого объекта в конвейер. Командлет Get-Content
использует параметр Path для указания LineNumbers.txt
файла и отображения содержимого в консоли PowerShell.
Пример 2. Ограничение количества строк, Get-Content возвращаемых
Эта команда получает первые пять строк файла. Параметр TotalCount используется для получения первых пяти строк содержимого. В этом примере используется LineNumbers.txt
файл, созданный в примере 1.
Get-Content -Path .\LineNumbers.txt -TotalCount 5
This is Line 1
This is Line 2
This is Line 3
This is Line 4
This is Line 5
Пример 3. Получение определенной строки содержимого из текстового файла
Эта команда получает определенное количество строк из файла, а затем отображает только последнюю строку этого содержимого. Параметр TotalCount получает первые 25 строк содержимого. В этом примере используется LineNumbers.txt
файл, созданный в примере 1.
(Get-Content -Path .\LineNumbers.txt -TotalCount 25)[-1]
This is Line 25
Команда Get-Content
заключена в круглые скобки, чтобы команда была завершена перед переходом к следующему шагу. Get-Content
возвращает массив строк, что позволяет добавить нотацию индекса после круглых скобок, чтобы получить определенный номер строки. В этом случае [-1]
индекс задает последний индекс в возвращенном массиве из 25 извлеченных строк.
Пример 4. Получение последней строки текстового файла
Эта команда получает первую и последнюю строку содержимого из файла. В этом примере используется LineNumbers.txt
файл, созданный в примере 1.
Get-Item -Path .\LineNumbers.txt | Get-Content -Tail 1
This is Line 100
В этом примере командлет используется Get-Item
для демонстрации возможности передачи файлов в Get-Content
параметр . Параметр Tail получает последнюю строку файла. Этот метод выполняется быстрее, чем извлечение всех строк и использование индексной [-1]
нотации.
Пример 5. Получение содержимого альтернативного потока данных
В этом примере описывается использование параметра Stream для получения содержимого альтернативного потока данных для файлов, хранящихся на томе Windows NTFS. В этом примере Set-Content
командлет используется для создания примера содержимого в файле с именем Stream.txt
.
Set-Content -Path .\Stream.txt -Value 'This is the content of the Stream.txt file'
# Specify a wildcard to the Stream parameter to display all streams of the recently created file.
Get-Item -Path .\Stream.txt -Stream *
PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Test\Stream.txt::$DATA
PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\Test
PSChildName : Stream.txt::$DATA
PSDrive : C
PSProvider : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
FileName : C:\Test\Stream.txt
Stream : :$DATA
Length : 44
# Retrieve the content of the primary, or $DATA stream.
Get-Content -Path .\Stream.txt -Stream $DATA
This is the content of the Stream.txt file
# Use the Stream parameter of Add-Content to create a new Stream containing sample content.
Add-Content -Path .\Stream.txt -Stream NewStream -Value 'Added a stream named NewStream to Stream.txt'
# Use Get-Item to verify the stream was created.
Get-Item -Path .\Stream.txt -Stream *
PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Test\Stream.txt::$DATA
PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\Test
PSChildName : Stream.txt::$DATA
PSDrive : C
PSProvider : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
FileName : C:\Test\Stream.txt
Stream : :$DATA
Length : 44
PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Test\Stream.txt:NewStream
PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\Test
PSChildName : Stream.txt:NewStream
PSDrive : C
PSProvider : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
FileName : C:\Test\Stream.txt
Stream : NewStream
Length : 46
# Retrieve the content of your newly created Stream.
Get-Content -Path .\Stream.txt -Stream NewStream
Added a stream named NewStream to Stream.txt
Параметр Stream является динамическим параметром поставщика FileSystem.
По умолчанию Get-Content
извлекает данные только из основного или $DATA
потока. Потоки можно использовать для хранения скрытых данных, таких как атрибуты, параметры безопасности или другие данные.
Пример 6. Получение необработанного содержимого
Команды в этом примере получают содержимое файла в виде одной строки, а не массива строк. По умолчанию без динамического параметра Raw содержимое возвращается в виде массива строк с разделителями newline. В этом примере используется LineNumbers.txt
файл, созданный в примере 1.
$raw = Get-Content -Path .\LineNumbers.txt -Raw
$lines = Get-Content -Path .\LineNumbers.txt
Write-Host "Raw contains $($raw.Count) lines."
Write-Host "Lines contains $($lines.Count) lines."
Raw contains 1 lines.
Lines contains 100 lines.
Пример 7. Использование фильтров с Get-Content
Для командлета можно указать фильтр Get-Content
. При использовании фильтров для определения параметра Path необходимо добавить звездочку (*
), чтобы указать содержимое пути.
Следующая команда получает содержимое всех *.log
файлов в каталоге C:\Temp
.
Get-Content -Path C:\Temp\* -Filter *.log
Пример 8. Получение содержимого файла в виде массива байтов
В этом примере показано, как получить содержимое файла в виде [byte[]]
одного объекта.
$byteArray = Get-Content -Path C:\temp\test.txt -Encoding Byte -Raw
Get-Member -InputObject $bytearray
TypeName: System.Byte[]
Name MemberType Definition
---- ---------- ----------
Count AliasProperty Count = Length
Add Method int IList.Add(System.Object value)
Первая команда использует параметр Encoding для получения потока байтов из файла.
Параметр Raw гарантирует, что байты возвращаются в виде [System.Byte[]]
. Если параметр Raw отсутствовал, возвращаемое значение представляет собой поток байтов, который интерпретируется PowerShell как [System.Object[]]
.
Параметры
-Credential
Примечание
Этот параметр не поддерживается поставщиками, установленными с помощью PowerShell. Чтобы олицетворить другого пользователя или повысить уровень учетных данных при выполнении этого командлета, используйте Invoke-Command.
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Delimiter
Указывает разделитель, который Get-Content
использует для разделения файла на объекты во время чтения. По умолчанию используется \n
символ конца строки. При чтении текстового файла Get-Content
возвращает коллекцию строковых объектов, каждый из которых заканчивается символом конца строки. При вводе разделителя, который не существует в файле, Get-Content
возвращает весь файл в виде одного неотделимого объекта.
Этот параметр можно использовать для разделения большого файла на файлы меньшего размера, указав разделитель файлов в качестве разделителя. Разделитель сохраняется (не удаляется) и становится последним элементом в каждом разделе файла.
Разделитель — это динамический параметр, добавляемый поставщиком FileSystem в Get-Content
командлет . Этот параметр работает только на дисках с файловой системой.
Примечание
В настоящее время, когда значение параметра Delimiter является пустой строкой, Get-Content
ничего не возвращает. Это известная проблема. Get-Content
Принудительное возвращение всего файла в виде одной неотделимой строки. Введите значение, которое не существует в файле.
Type: | String |
Position: | Named |
Default value: | End-of-line character |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Encoding
Указывает тип кодировки для целевого файла. Значение по умолчанию ― Default.
Ниже приведены допустимые значения для этого параметра.
- ASCII Использует набор символов ASCII (7 бит).
- BigEndianUnicode Использует UTF-16 с порядком байтов с большим порядком байтов.
- BigEndianUTF32 Использует UTF-32 с порядком байтов с большим порядком байтов.
- Байт Кодирует набор символов в последовательность байтов.
- По умолчанию Использует кодировку, соответствующую активной кодовой странице системы (обычно ANSI).
- OEM Использует кодировку, соответствующую текущей системной кодовой странице OEM.
- Строка То же, что и в Юникоде.
- Юникода Использует UTF-16 с порядком байтов с минимальным порядком байтов.
- Неизвестный То же, что и в Юникоде.
- UTF7 Использует UTF-7.
- UTF8 Использует UTF-8.
- UTF32 Использует UTF-32 с порядком байтов с минимальным порядком байтов.
Кодировка — это динамический параметр, добавляемый поставщиком FileSystem в Get-Content
командлет .
Этот параметр работает только на дисках с файловой системой.
При чтении и записи в двоичные файлы используйте значение Byte для динамического параметра Encoding и значение 0 для параметра ReadCount . Значение ReadCount , равное 0, считывает весь файл в одной операции чтения и преобразует его в один объект (PSObject). Значение ReadCount по умолчанию, 1, считывает один байт в каждой операции чтения и преобразует каждый байт в отдельный объект, что приводит к ошибкам при использовании командлета Set-Content
для записи байтов в файл.
Type: | FileSystemCmdletProviderEncoding |
Accepted values: | ASCII, BigEndianUnicode, BigEndianUTF32, Byte, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32 |
Position: | Named |
Default value: | Default |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Exclude
Указывает в качестве массива строк элемент или элементы, которые этот командлет исключает в операции. Значение этого параметра определяет параметр Path.
Введите элемент пути или шаблон, например *.txt
.
Можно использовать подстановочные знаки.
Параметр Exclude действует только в том случае, если команда содержит содержимое элемента, например C:\Windows\*
, где подстановочный знак указывает содержимое C:\Windows
каталога.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Filter
Указывает фильтр для определения параметра Path . Поставщик FileSystem — единственный установленный поставщик PowerShell, поддерживающий использование фильтров. Синтаксис языка фильтрации файловой системы можно найти в about_Wildcards. Фильтры более эффективны, чем другие параметры, так как поставщик применяет их, когда командлет получает объекты, а не фильтрует объекты PowerShell после их извлечения.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Force
Принудительно переопределит атрибут только для чтения или создаст каталоги для завершения пути к файлу. Параметр Force не пытается изменить разрешения файла или переопределить ограничения безопасности.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Include
Указывает в качестве массива строк элемент или элементы, которые этот командлет включает в операцию. Значение этого параметра определяет параметр Path. Введите элемент пути или шаблон, например "*.txt"
. Можно использовать подстановочные знаки. Параметр Include действует, только если команда включает содержимое элемента, например C:\Windows\*
, где подстановочный знак указывает содержимое C:\Windows
каталога.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-LiteralPath
Указывает путь к одному или нескольким расположениям. Значение LiteralPath используется точно так же, как и в типизированном виде. Никакие символы не интерпретируются как знаки подстановки. Если путь содержит escape-символы, заключите его в одинарные кавычки. Одинарные кавычки предписывают PowerShell не интерпретировать какие-либо символы как escape-последовательности.
Дополнительные сведения см. в разделе about_Quoting_Rules.
Type: | String[] |
Aliases: | PSPath |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Path
Указывает путь к элементу, по которому Get-Content
получается содержимое. Можно использовать подстановочные знаки. Пути должны вести к элементам, а не к контейнерам. Например, нужно указать путь к одному или нескольким файлам, а не путь к каталогу.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-Raw
Игнорирует символы новой строки и возвращает все содержимое файла в одной строке с сохранением новых строк. По умолчанию символы новой строки в файле используются в качестве разделителей для разделения входных данных в массив строк. Этот параметр появился в PowerShell 3.0.
Raw — это динамический параметр, добавляемый поставщиком FileSystem в Get-Content
командлет Этот параметр работает только на дисках файловой системы.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ReadCount
Определяет количество строк содержимого, передаваемых по конвейеру за один раз. Значение по умолчанию — 1. Если значение равно 0 (нулю), все содержимое отправляется за один раз.
Этот параметр не изменяет отображаемое содержимое, но влияет на время его отображения. При увеличении значения параметра ReadCount время, необходимое для возврата первой строки, возрастает, но общее время выполнения операции сокращается. Это может существенно повлиять на крупные элементы.
Type: | Int64 |
Position: | Named |
Default value: | 1 |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Stream
Возвращает содержимое указанного альтернативного файлового потока NTFS из файла. Введите имя потока. Подстановочные знаки не поддерживаются.
Stream — это динамический параметр, добавляемый поставщиком FileSystem в Get-Content
командлет .
Этот параметр работает только на дисках файловой системы в системах Windows. Этот параметр впервые появился в Windows PowerShell 3.0.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Tail
Указывает количество строк в конце файла или другого элемента. Можно использовать имя параметра Tail или его псевдоним Last. Этот параметр появился в PowerShell 3.0.
Type: | Int32 |
Aliases: | Last |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-TotalCount
Указывает количество строк от начала файла или другого элемента. По умолчанию используется значение -1 (все строки).
Можно использовать имя параметра TotalCount или его псевдонимы First или Head.
Type: | Int64 |
Aliases: | First, Head |
Position: | Named |
Default value: | -1 |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-UseTransaction
Включает команду в активную транзакцию. Этот параметр доступен только при выполнении транзакции. Дополнительные сведения см. в разделе about_Transactions.
Type: | SwitchParameter |
Aliases: | usetx |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Wait
Сохраняет файл открытым после вывода всех существующих строк. Во время ожидания Get-Content
проверяет файл каждую секунду и выводит новые строки, если они присутствуют. Вы можете прервать ожидание , нажав клавиши CTRL+C. Ожидание также заканчивается, если файл удаляется. В этом случае сообщается о неустранимой ошибке.
Wait — это динамический параметр, добавляемый поставщиком FileSystem в Get-Content
командлет . Этот параметр работает только на дисках с файловой системой. Ожидание не может быть объединено с необработанным.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Входные данные
System.Int64, System.String[], System.Management.Automation.PSCredential
Вы можете передать число операций чтения, общее число, пути или учетные данные в Get-Content
.
Выходные данные
System.Byte, System.String
Get-Content
возвращает строки или байты. Тип выходных данных зависит от типа содержимого, указанного в качестве входных данных.
Примечания
Командлет Get-Content
предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы получить поставщиков в сеансе, используйте Get-PSProvider
командлет . Дополнительные сведения см. в разделе about_Providers.