- Configure power settings overview
- Use Windows Configuration Designer to configure power settings
- Use Powercfg.exe to control power schemes
- In this section
- Get-Content
- Syntax
- Description
- Examples
- Example 1: Get the content of a text file
- Example 2: Limit the number of lines Get-Content returns
- Example 3: Get a specific line of content from a text file
- Example 4: Get the last line of a text file
- Example 5: Get the content of an alternate data stream
- Example 6: Get raw content
- Example 7: Use Filters with Get-Content
- Example 8: Get file contents as a byte array
- Parameters
- Inputs
- Outputs
- Notes
Configure power settings overview
This section contains information about the power settings that you can configure using the Windows provisioning framework. Each power setting topic includes the identification GUID, allowed values, meaning, and common usage scenarios for the setting.
The primary audience for these topics is Original Equipment Manufacturers (OEMs). If you’re a Windows device owner (consumer) and would like to learn more about power settings in Windows 10, please see How to enable Hibernate and Sleep in Power Options on Microsoft’s community support site. You can also search for troubleshooting instructions on this site if needed.
Use Windows Configuration Designer to configure power settings
To configure the power settings, you will first create a provisioning package using Windows Configuration Designer. You will then edit the customizations.xml file contained in the package to include your power settings. Use the XML file as one of the inputs to the Windows Configuration Designer command-line to generate either a provisioning package or a Windows image that contains the power settings. For information on how to use the Windows Configuration Designer CLI, see Use the Windows Configuration Designer command-line interface.
The power settings are not visible in the Windows Configuration Designer UI but appear under the main Common\Power namespace. This namespace is further divided into various groups including:
Policy\Settings which includes the following subgroups:
- AdaptivePowerBehavior
- Processor
- Battery
- Button
- Display
- Disk
- EnergySaver
- PCIExpress
- Sleep
- Misc
Controls which includes the following settings:
The following example shows what your Windows provisioning answer file might look like after you’ve written it.
Use Powercfg.exe to control power schemes
You can use the powercfg.exe tool to control power schemes by providing the GUID or alias for the setting. For more information on how to use this tool, see Powercfg command-line options.
In this section
Adaptive hibernate supports triggers which eliminate resume to a dead battery, and provide a great Modern Standby experience by ensuring that the system remains in CS for as long as possible.
Settings in this subgroup include settings that control the system’s power and behavior.
The Windows 10 processor power management (PPM) algorithms implement OS-level functionality that allows the OS to efficiently use the available processing resources on a platform by balancing the user’s expectations of performance and energy efficiency.
Settings in this subgroup control the customization of battery actions and thresholds.
Settings in this subgroup control the customization of system button actions.
Settings in this subgroup control the power management of the display.
Settings in this subgroup control the power management of disk devices.
Settings in this subgroup control the battery threshold and brightness when Energy Saver is turned on.
Settings in this subgroup control the power management of PCI Express links.
Settings in this subgroup control sleep, resume, and other related functionality.
Settings in this subgroup do not belong to any other subgroup.
Get-Content
Gets the content of the item at the specified location.
Syntax
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 or the content of a function. For files, the content is read one line at a time and returns a collection of objects, each of which represents a line of content.
Beginning in PowerShell 3.0, Get-Content can also get a specified number of lines from the beginning or end of an item.
Examples
Example 1: Get the content of a text file
This example gets the content of a file in the current directory. The LineNumbers.txt file contains 100 lines in the format, This is Line X and is used in several examples.
The array values 1-100 are sent down the pipeline to the ForEach-Object cmdlet. ForEach-Object uses a script block with the Add-Content cmdlet to create the LineNumbers.txt file. The variable $_ represents the array values as each object is sent down the pipeline. The Get-Content cmdlet uses the Path parameter to specify the LineNumbers.txt file and displays the content in the PowerShell console.
Example 2: Limit the number of lines Get-Content returns
This command gets the first five lines of a file. The TotalCount parameter is used to gets the first five lines of content. This example uses the LineNumbers.txt file that was created in Example 1.
Example 3: Get a specific line of content from a text file
This command gets a specific number of lines from a file and then displays only the last line of that content. The TotalCount parameter gets the first 25 lines of content. This example uses the LineNumbers.txt file that was created in Example 1.
The Get-Content command is wrapped in parentheses so that the command completes before going to the next step. Get-Content returns an array of lines, this allows you to add the index notation after the parenthesis to retrieve a specific line number. In this case, the [-1] index specifies the last index in the returned array of 25 retrieved lines.
Example 4: Get the last line of a text file
This command gets the first line and last line of content from a file. This example uses the LineNumbers.txt file that was created in Example 1.
This example uses the Get-Item cmdlet to demonstrate that you can pipe files into the Get-Content parameter. The Tail parameter gets the last line of the file. This method is faster than retrieving all of the lines and using the [-1] index notation.
Example 5: Get the content of an alternate data stream
This example describes how to use the Stream parameter to get the content of an alternate data stream for files stored on a Windows NTFS volume. In this example, the Set-Content cmdlet is used to create sample content in a file named Stream.txt .
The Stream parameter is a dynamic parameter of the FileSystem provider. By default Get-Content only retrieves data from the default, or :$DATA stream. Streams can be used to store hidden data such as attributes, security settings, or other data. They can also be stored on directories without being child items.
Example 6: Get raw content
The commands in this example get the contents of a file as one string, instead of an array of strings. By default, without the Raw dynamic parameter, content is returned as an array of newline-delimited strings. This example uses the LineNumbers.txt file that was created in Example 1.
Example 7: Use Filters with Get-Content
You can specify a filter to the Get-Content cmdlet. When using filters to qualify the Path parameter, you need to include a trailing asterisk ( * ) to indicate the contents of the path.
The following command gets the content of all *.log files in the C:\Temp directory.
Example 8: Get file contents as a byte array
This example demonstrates how to get the contents of a file as a [byte[]] as a single object.
The first command uses the AsByteStream parameter to get the stream of bytes from the file. The Raw parameter ensures that the bytes are returned as a [System.Byte[]] . If the Raw parameter was absent, the return value is a stream of bytes, which is interpreted by PowerShell as [System.Object[]] .
Parameters
Specifies that the content should be read as a stream of bytes. The AsByteStream parameter was introduced in Windows PowerShell 6.0.
A warning occurs when you use the AsByteStream parameter with the Encoding parameter. The AsByteStream parameter ignores any encoding and the output is returned as a stream of bytes.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
This parameter is not supported by any providers installed with PowerShell. To impersonate another user, or elevate your credentials when running this cmdlet, use Invoke-Command.
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Specifies the delimiter that Get-Content uses to divide the file into objects while it reads. The default is \n , the end-of-line character. When reading a text file, Get-Content returns a collection of string objects, each of which ends with an end-of-line character. When you enter a delimiter that does not exist in the file, Get-Content returns the entire file as a single, undelimited object.
You can use this parameter to split a large file into smaller files by specifying a file separator, as the delimiter. The delimiter is preserved (not discarded) and becomes the last item in each file section.
Delimiter is a dynamic parameter that the FileSystem provider adds to the Get-Content cmdlet. This parameter works only in file system drives.
Currently, when the value of the Delimiter parameter is an empty string, Get-Content does not return anything. This is a known issue. To force Get-Content to return the entire file as a single, undelimited string. Enter a value that does not exist in the file.
Type: | String |
Position: | Named |
Default value: | End-of-line character |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies the type of encoding for the target file. The default value is utf8NoBOM .
The acceptable values for this parameter are as follows:
- ascii : Uses the encoding for the ASCII (7-bit) character set.
- bigendianunicode : Encodes in UTF-16 format using the big-endian byte order.
- oem : Uses the default encoding for MS-DOS and console programs.
- unicode : Encodes in UTF-16 format using the little-endian byte order.
- utf7 : Encodes in UTF-7 format.
- utf8 : Encodes in UTF-8 format.
- utf8BOM : Encodes in UTF-8 format with Byte Order Mark (BOM)
- utf8NoBOM : Encodes in UTF-8 format without Byte Order Mark (BOM)
- utf32 : Encodes in UTF-32 format.
Encoding is a dynamic parameter that the FileSystem provider adds to the Get-Content cmdlet. This parameter is available only in file system drives.
When reading from and writing to binary files, use the AsByteStream parameter and a value of 0 for the ReadCount parameter. A ReadCount value of 0 reads the entire file in a single read operation. The default ReadCount value, 1, reads one byte in each read operation and converts each byte into a separate object, which causes errors when you use the Set-Content cmdlet to write the bytes to a file unless you use AsByteStream parameter.
Beginning with PowerShell 6.2, the Encoding parameter also allows numeric IDs of registered code pages (like -Encoding 1251 ) or string names of registered code pages (like -Encoding «windows-1251» ). For more information, see the .NET documentation for Encoding.CodePage.
Type: | Encoding |
Accepted values: | ASCII, BigEndianUnicode, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Default value: | UTF8NoBOM |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies, as a string array, an item or items that this cmdlet excludes in the operation. The value of this parameter qualifies the Path parameter.
Enter a path element or pattern, such as *.txt . Wildcard characters are permitted.
The Exclude parameter is effective only when the command includes the contents of an item, such as C:\Windows\* , where the wildcard character specifies the contents of the C:\Windows directory.
Type: | String [ ] |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | True |
Specifies a filter to qualify the Path parameter. The FileSystem provider is the only installed PowerShell provider that supports the use of filters. You can find the syntax for the FileSystem filter language in about_Wildcards. Filters are more efficient than other parameters, because the provider applies them when the cmdlet gets the objects rather than having PowerShell filter the objects after they are retrieved.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | True |
Force will override a read-only attribute or create directories to complete a file path. The Force parameter does not attempt to change file permissions or override security restrictions.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies, as a string array, an item or items that this cmdlet includes in the operation. The value of this parameter qualifies the Path parameter. Enter a path element or pattern, such as «*.txt» . Wildcard characters are permitted. The Include parameter is effective only when the command includes the contents of an item, such as C:\Windows\* , where the wildcard character specifies the contents of the C:\Windows directory.
Type: | String [ ] |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | True |
Specifies a path to one or more locations. The value of LiteralPath is used exactly as it is typed. No characters are interpreted as wildcards. If the path includes escape characters, enclose it in single quotation marks. Single quotation marks tell PowerShell not to interpret any characters as escape sequences.
Type: | String [ ] |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Specifies the path to an item where Get-Content gets the content. Wildcard characters are permitted. The paths must be paths to items, not to containers. For example, you must specify a path to one or more files, not a path to a directory.
Type: | String [ ] |
Position: | 0 |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | True |
Ignores newline characters and returns the entire contents of a file in one string with the newlines preserved. By default, newline characters in a file are used as delimiters to separate the input into an array of strings. This parameter was introduced in PowerShell 3.0.
Raw is a dynamic parameter that the FileSystem provider adds to the Get-Content cmdlet This parameter works only in file system drives.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies how many lines of content are sent through the pipeline at a time. The default value is 1. A value of 0 (zero) sends all of the content at one time.
This parameter does not change the content displayed, but it does affect the time it takes to display the content. As the value of ReadCount increases, the time it takes to return the first line increases, but the total time for the operation decreases. This can make a perceptible difference in large items.
Type: | Int64 |
Position: | Named |
Default value: | 1 |
Accept pipeline input: | True |
Accept wildcard characters: | False |
This Parameter is only available on Windows.
Gets the contents of the specified alternate NTFS file stream from the file. Enter the stream name. Wildcards are not supported.
Stream is a dynamic parameter that the FileSystem provider adds to the Get-Content cmdlet. This parameter works only in file system drives on Windows systems. This parameter was introduced in Windows PowerShell 3.0.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies the number of lines from the end of a file or other item. You can use the Tail parameter name or its alias, Last. This parameter was introduced in PowerShell 3.0.
Type: | Int32 |
Aliases: | Last |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Specifies the number of lines from the beginning of a file or other item. The default is -1 (all lines).
You can use the TotalCount parameter name or its aliases, First or Head.
Type: | Int64 |
Aliases: | First, Head |
Position: | Named |
Default value: | -1 |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Keeps the file open after all existing lines have been output. While waiting, Get-Content checks the file once each second and outputs new lines if present. You can interrupt Wait by pressing CTRL+C. Waiting also ends if the file gets deleted, in which case a non-terminating error is reported.
Wait is a dynamic parameter that the FileSystem provider adds to the Get-Content cmdlet. This parameter works only in file system drives. Wait cannot be combined with Raw.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Inputs
System.Int64, System.String[], System.Management.Automation.PSCredential
You can pipe the read count, total count, paths, or credentials to Get-Content .
Outputs
System.Byte, System.String
Get-Content returns strings or bytes. The output type depends upon the type of content that you specify as input.
Notes
The Get-Content cmdlet is designed to work with the data exposed by any provider. To get the providers in your session, use the Get-PSProvider cmdlet. For more information, see about_Providers.