PowerShell Logo Small

Get-Content



This is the built-in help made by Microsoft for the command 'Get-Content', in PowerShell version 4 - as retrieved from Windows version 'Microsoft Windows 8.1 Enterprise' PowerShell help files on 2016-06-23.

For PowerShell version 3 and up, where you have Update-Help, this command was run just before creating the web pages from the help files.

SYNOPSIS

Gets the contents of a file.

SYNTAX


Get-Content [-Path] <String[]> [-Credential <PSCredential>] [-Exclude <String[]>] [-Filter <String>] [-Force] [-Include <String[]>] [-ReadCount <Int64>] [-Tail <Int32
>] [-TotalCount <Int64>] [-UseTransaction [<SwitchParameter>]] [<CommonParameters>]
Get-Content [-Credential <PSCredential>] [-Exclude <String[]>] [-Filter <String>] [-Force] [-Include <String[]>] [-ReadCount <Int64>] [-Tail <Int32>] [-TotalCount <In
t64>] -LiteralPath <String[]> [-UseTransaction [<SwitchParameter>]] [<CommonParameters>]
Get-Content [-Delimiter <string>] [-Encoding {Unknown | String | Unicode | Byte | BigEndianUnicode | UTF8 | UTF7 | UTF32 | Ascii | Default | Oem}] [-Force] [-Raw <swi
tch>] [-Stream <string>] [-Wait] [-UseTransaction] [<CommonParameters>]



Search powershellhelp.space

DESCRIPTION


The Get-Content cmdlet gets the content of the item at the location specified by the path, such as the text in a file. It reads the content one line at a time and ret
urns a collection of objects , each of which represents a line of content.


Beginning in Windows PowerShell 3.0, Get-Content can also get a specified number of lines from the beginning or end of an item.

In file system drives, you can use the the Get-Content cmdlet to get content that you display at the command line, save in a variable for processing, or write to anot
her file. It is not valid on folders.

Note: This custom cmdlet help file explains how the Get-Content cmdlet works in a file system drive. For information about the Get-Content cmdlet in all drives, type
"Get-Help Get-Content -Path $null" or see Get-Content at http://go.microsoft.com/fwlink/?LinkID=113310.



<

RELATED LINKS

Online version: http://technet.microsoft.com/library/hh847788(v=wps.630).aspx
Get-Content
(generic); http://go.microsoft.com/fwlink/?LinkID=113310
FileSystem Provider
Clear-Content
Get-Content
Get-ChildItem
Get-Content
Get-Item
Remove-Item
Set-Content
Test-Path

REMARKS

<

Examples


-------------------------- EXAMPLE 1 --------------------------

C:\PS>Get-Content -Path C:\Chapters\chapter1.txt



Description

-----------

This command gets the content of the Chapter1.txt file and displays it in the console. It uses the Path parameter to specify the name of the item.

Get-Content actually passes the content down the pipeline, but because there are no other cmdlets in the pipeline, Windows PowerShell formats the contents and display
s it in the console.








-------------------------- EXAMPLE 2 --------------------------

C:\PS>Get-Content C:\Logs\Log060912.txt -TotalCount 50 | Set-Content Sample.txt



Description

-----------

This command gets the first 50 lines of the Log060912.txt file and stores them in the sample.txt file.

The command uses the Get-Content cmdlet to get the text in the file. (The name of Path parameter, which is optional, is omitted.) The TotalCount parameter limits the
retrieval to the first 50 lines. The pipeline operator (|) sends the result to Set-Content, which places it in the sample.txt file.








-------------------------- EXAMPLE 3 --------------------------

C:\PS>(Get-Content Cmdlets.txt -TotalCount 5)[-1]



Description

-----------

This command gets the fifth line of the Cmdlets.txt text file. It uses the TotalCount parameter to get the first five lines and then uses array notation to get the la
st line (indicated by "-1") of the resulting set.








-------------------------- EXAMPLE 4 --------------------------

C:\PS>Get-Content .\DataSets\*.csv -Delimiter "*---*" -Force -Encoding UTF8



Description

-----------

This command gets the contents of all CSV files in the DataSets subdirectory. It uses the Force parameter to get all files, including hidden files, and the Encoding p
arameter to specify the file encoding.

The command also uses the Delimiter parameter to divide the returned content into sets, each of which ends at the CSV file row that contains the "*----*" marker.








-------------------------- EXAMPLE 5 --------------------------

C:\PS>Get-Content .\Copy-Scripts.ps1 -Stream Zone.Identifier

[ZoneTransfer]
ZoneId=3



Description

-----------

This command uses the Stream parameter to get the content of the Zone.Identifier alternate data stream. The output includes Zone ID value of 3, which represents the I
nternet.

The Stream parameter is introduced in Windows PowerShell 3.0.








-------------------------- EXAMPLE 6 --------------------------

C:\PS>$Manifest = (Get-Module -List PSScheduledJob).Path

C:\PS>$Hash = Invoke-Expression (Get-Content $Manifest -Raw)

C:\PS>$Hash

Name Value
---- -----
Copyright © Microsoft Corporation. All rights reserved.
ModuleToProcess Microsoft.PowerShell.ScheduledJob.dll
FormatsToProcess PSScheduledJob.Format.ps1xml
PowerShellVersion 3.0
CompanyName Microsoft Corporation
GUID 50cdb55f-5ab7-489f-9e94-4ec21ff51e59
Author Microsoft Corporation
CLRVersion 4.0
CmdletsToExport {New-JobTrigger, Add-JobTrigger, Remove-JobTrigger, Get-JobTrigger...}
TypesToProcess PSScheduledJob.types.ps1xml
HelpInfoURI http://go.microsoft.com/fwlink/?LinkID=223911
ModuleVersion 1.0.0.0

C:\PS>$Hash.ModuleToProcess
Microsoft.PowerShell.ScheduledJob.dll



Description

-----------

The commands in this example get the contents of a module manifest file (.psd1) as a hash table. The manifest file contains a hash table, but if you get the contents
without the Raw dynamic parameter, it is returned as an array of newline-delimited strings.

The Raw dynamic parameter is introduced in Windows PowerShell 3.0.

The first command uses the Path property of modules to get the path to the file that contains the module manifest for the PSScheduledJob module. It saves the path in
the $Manifest variable.

The second command uses the Invoke-Expression cmdlet to run a Get-Content command and the Raw dynamic parameter of the Get-Content cmdlet to get the contents of the m
odule manifest file in a single string. The command saves the hash table in the $Hash variable.

The third command gets the hash table in the Hash variable. The contents is returned as a collection of name-value pairs.

The fourth command uses the ModuleToProcess property of the hash table to get the value of the ModuleToProcess key in the module manifest.








-------------------------- EXAMPLE 7 --------------------------

C:\PS>$a = Get-Content -Path .\Download.zip -Encoding Byte -ReadCount 0

Set-Content -Path \\Server\Share\Download.zip -Encoding Byte -Value $a


$b = Get-Content -Path .\Download.zip -Encoding Byte
Set-Content -Path \\Server\Share\Download.zip -Encoding Byte -Value $b

Set-Content : Cannot proceed with byte encoding. When using byte encoding the content must be of type byte.
At line:1 char:1
+ Set-Content \\Server\Share\Download.zip -Encoding Byte -Value $b
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Set-Content], PSArgumentException
+ FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.SetContentCommand



Description

-----------

This example shows how to use the ReadCount parameter of the Get-Content cmdlet with a value of 0 to avoid byte-related errors when using the Set-Content cmdlet to wr
ite the bytes to a file.

When getting the content of a file in bytes, Get-Content creates an object (PSObject) for the bytes in each read operation. If you read the bytes one at a time, which
is the default, Get-Content creates an object for each byte. The objects cause errors when you use the Set-Content cmdlet to write the bytes to a file.

The first command uses the Get-Content cmdlet to get the contents of the Download.zip file and save it in the $a variable. The command uses the Encoding dynamic param
eter with a value of Byte. It also uses the ReadCount parameter with a value of 0, which directs Get-Content to get the file contents in a single read operation. The
default value of the ReadCount parameter, 1, gets one byte at a time.

The second command uses the Set-Content cmdlet to write the bytes in the $a variable to the Download.zip file on a file share. The command succeeds.

The third and fourth commands show the same sequence without the ReadCount parameter.

The third command uses the Encoding dynamic parameter of the Get-Content cmdlet to get the contents of the Download.zip file and save it in the $b variable. Because t
he command omits the ReadCount parameter, it uses the default value of 1.

The fourth command uses the Set-Content cmdlet to write the bytes in the $b variable to the Download.zip file on a file share. Because the content is a collection of
objects, rather than a single object that contains a byte array, the command fails.