diff --git a/reference/5.1/Microsoft.PowerShell.Core/About/about_Format.ps1xml.md b/reference/5.1/Microsoft.PowerShell.Core/About/about_Format.ps1xml.md index 8e7518e6e313..ca996409bbef 100644 --- a/reference/5.1/Microsoft.PowerShell.Core/About/about_Format.ps1xml.md +++ b/reference/5.1/Microsoft.PowerShell.Core/About/about_Format.ps1xml.md @@ -1,7 +1,7 @@ --- description: The `Format.ps1xml` files in PowerShell define the default display of objects in the PowerShell console. You can create your own `Format.ps1xml` files to change the display of objects or to define default displays for new object types that you create in PowerShell. Locale: en-US -ms.date: 04/25/2022 +ms.date: 12/26/2025 online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_format.ps1xml?view=powershell-5.1&WT.mc_id=ps-gethelp schema: 2.0.0 title: about_Format.ps1xml @@ -88,7 +88,7 @@ headers, and the properties that are displayed in the body of the view. The format in `Format.ps1xml` files is applied just before the data is presented to the user. -## CREATING NEW FORMAT.PS1XML FILES +## Creating new Format.ps1xml files The `.ps1xml` files that are installed with PowerShell are digitally signed to prevent tampering because the formatting can include script blocks. To change @@ -98,9 +98,7 @@ session. To create a new file, copy an existing `Format.ps1xml` file. The new file can have any name, but it must have a `.ps1xml` file name extension. You can place -the new file in any directory that is accessible to PowerShell, but it's useful -to place the files in the PowerShell installation directory (`$PSHOME`) or in a -subdirectory of the installation directory. +the new file in any directory that is accessible to PowerShell. To change the formatting of a current view, locate the view in the formatting file, and then use the tags to change the view. To create a view for a new @@ -127,12 +125,11 @@ view of the culture objects. The following `Select-String` command finds the file: ```powershell -$Parms = @{ - Path = "$PSHOME\*Format.ps1xml" - Pattern = "System.Globalization.CultureInfo" +$selectParams = @{ + Path = "$PSHOME\*Format.ps1xml" + Pattern = 'System.Globalization.CultureInfo' } - -Select-String @Parms +Select-String @selectParams ``` ```Output @@ -142,14 +139,20 @@ C:\Windows\System32\WindowsPowerShell\v1.0\DotNetTypes.format.ps1xml:115: System.Globalization.CultureInfo ``` -This command reveals that the definition is in the `DotNetTypes.Format.ps1xml` +This command reveals that the definition is in the `DotNetTypes.format.ps1xml` file. -The next command copies the file contents to a new file, -`MyDotNetTypes.Format.ps1xml`. +The following commands copy the file contents to a new file named +`MyDotNetTypes.Format.ps1xml` in a newly created `$HOME\Format` directory. ```powershell -Copy-Item $PSHOME\DotNetTypes.format.ps1xml MyDotNetTypes.Format.ps1xml +New-Item -Path $HOME\Format -ItemType Directory -Force + +$copyParams = @{ + LiteralPath = "$PSHOME\DotNetTypes.format.ps1xml" + Destination = "$HOME\Format\MyDotNetTypes.Format.ps1xml" +} +Copy-Item @copyParams ``` Open the `MyDotNetTypes.Format.ps1xml` file in any XML or text editor, such as @@ -289,10 +292,10 @@ the current PowerShell session. This example uses the **PrependPath** parameter to place the new file in a higher precedence order than the original file. For more information, see -[Update-FormatData](xref:Microsoft.PowerShell.Utility.Update-FormatData). +[Update-FormatData][03]. ```powershell -Update-FormatData -PrependPath $HOME\Format\CultureInfo.Format.ps1xml +Update-FormatData -PrependPath $HOME\Format\MyDotNetTypes.Format.ps1xml ``` To test the change, type `Get-Culture` and review the output that includes the @@ -310,8 +313,8 @@ LCID Name Calendar DisplayName ## The XML in Format.ps1xml files -The full schema definition can be found in [Format.xsd](https://github.com/PowerShell/PowerShell/blob/master/src/Schemas/Format.xsd) -in the PowerShell source code repository on GitHub. +The full schema definition can be found in [Format.xsd][04] in the PowerShell +source code repository on GitHub. The **ViewDefinitions** section of each `Format.ps1xml` file contains the `` tags that define each view. A typical `` tag includes the @@ -376,13 +379,13 @@ that the `` tag is intended to display. ### WideControl tag The `` tag typically contains a `` tag. The -`` tag contains one or more `` tags. A `` tag -contains one `` tag. +`` tag contains one or more `` tags. A `` +tag contains one `` tag. A `` tag must include either a `` tag or a -`` tag. A `` tag specifies the property to display at -the specified location in the view. A `` tag specifies a script to -evaluate and display at the specified location in the view. +`` tag. A `` tag specifies the property to display +at the specified location in the view. A `` tag specifies a script +to evaluate and display at the specified location in the view. A `` tag can contain a `` tag that specifies how to display the property. @@ -396,7 +399,7 @@ multiple `` tags. Each `` tag contains a formatting of the specified location in the view, including ``, ``, ``, and `` tags. -## DEFAULT DISPLAYS IN TYPES.PS1XML +## Default displays in Types.ps1xml The default displays of some basic object types are defined in the `Types.ps1xml` file in the `$PSHOME` directory. The nodes are named @@ -417,15 +420,12 @@ value of the **Name** parameter: - FormatFileLoading - FormatViewBinding -For more information, see -[Trace-Command](xref:Microsoft.PowerShell.Utility.Trace-Command) and -[Get-TraceSource](xref:Microsoft.PowerShell.Utility.Get-TraceSource). +For more information, see [Trace-Command][05] and [Get-TraceSource][06]. ## Signing a Format.ps1xml file To protect the users of your `Format.ps1xml` file, sign the file using a -digital signature. For more information, see -[about_Signing](about_Signing.md). +digital signature. For more information, see [about_Signing][07]. ## Sample XML for a Format-Table custom view @@ -434,25 +434,38 @@ The following sample creates a `Format-Table` custom view for the `Get-ChildItem`. The custom view is named **MyGciView** and adds the **CreationTime** column to the table. +Use `Select-String` to identify which `Format.ps1xml` file contains data for +the type you're looking for. + The custom view is created from an edited version of the `FileSystem.Format.ps1xml` file that's stored in `$PSHOME` on PowerShell 5.1. -After your custom `.ps1xml` file is saved, use `Update-FormatData` to include -the view in a PowerShell session. For this example, the custom view must use -the table format, otherwise, `Format-Table` fails. +After the custom `.ps1xml` file is saved, use the `Update-FormatData` cmdlet to +include the view in the current PowerShell session. Or, add the update command +to your PowerShell profile if you need the view available in all PowerShell +sessions. + +For this example, the custom view must use the table format, otherwise, +`Format-Table` fails. Use `Format-Table` with the **View** parameter to specify the custom view's -name and format the table's output. For an example of how the command is run, -see [Format-Table](xref:Microsoft.PowerShell.Utility.Format-Table). +name, **MyGciView**, and format the table's output with the **CreationTime** +column. For an example of how the command is run, see [Format-Table][08]. ```powershell -$Parms = @{ - Path = "$PSHOME\*Format.ps1xml" - Pattern = "System.IO.DirectoryInfo" +$selectParams = @{ + Path = "$PSHOME\*format.ps1xml" + Pattern = 'System.IO.DirectoryInfo' } -Select-String @Parms -Copy-Item $PSHOME\FileSystem.format.ps1xml .\MyFileSystem.Format.ps1xml -Update-FormatData -PrependPath $PSHOME\Format\MyFileSystem.Format.ps1xml +Select-String @selectParams + +$copyParams = @{ + LiteralPath = "$PSHOME\FileSystem.format.ps1xml" + Destination = "$HOME\Format\MyFileSystem.Format.ps1xml" +} +Copy-Item @copyParams + +Update-FormatData -PrependPath $HOME\Format\MyFileSystem.Format.ps1xml ``` > [!NOTE] @@ -582,9 +595,10 @@ Update-FormatData -PrependPath $PSHOME\Format\MyFileSystem.Format.ps1xml [01]: xref:Microsoft.PowerShell.Utility.Get-FormatData [02]: xref:Microsoft.PowerShell.Utility.Export-FormatData [03]: xref:Microsoft.PowerShell.Utility.Update-FormatData - +[04]: https://github.com/PowerShell/PowerShell/blob/master/src/Schemas/Format.xsd [05]: xref:Microsoft.PowerShell.Utility.Trace-Command [06]: xref:Microsoft.PowerShell.Utility.Get-TraceSource - +[07]: about_Signing.md +[08]: xref:Microsoft.PowerShell.Utility.Format-Table [09]: /powershell/scripting/developer/format/format-schema-xml-reference [10]: /powershell/scripting/developer/format/writing-a-powershell-formatting-file diff --git a/reference/5.1/Microsoft.PowerShell.Utility/ConvertFrom-Csv.md b/reference/5.1/Microsoft.PowerShell.Utility/ConvertFrom-Csv.md index 20df4fd57db3..440cd3aaa960 100644 --- a/reference/5.1/Microsoft.PowerShell.Utility/ConvertFrom-Csv.md +++ b/reference/5.1/Microsoft.PowerShell.Utility/ConvertFrom-Csv.md @@ -2,7 +2,7 @@ external help file: Microsoft.PowerShell.Commands.Utility.dll-Help.xml Locale: en-US Module Name: Microsoft.PowerShell.Utility -ms.date: 11/18/2025 +ms.date: 12/27/2025 online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/convertfrom-csv?view=powershell-5.1&WT.mc_id=ps-gethelp schema: 2.0.0 title: ConvertFrom-Csv @@ -10,6 +10,7 @@ title: ConvertFrom-Csv # ConvertFrom-Csv ## SYNOPSIS + Converts object properties in character-separated value (CSV) format into CSV versions of the original objects. @@ -145,7 +146,7 @@ the **InputObject** parameter and converts the CSV strings from the `$Services` When the **UseCulture** parameter is used, be sure that the current culture's default list separator matches the delimiter used in the CSV strings. Otherwise, `ConvertFrom-Csv` can't -generate objects from the CSV strings. +can't parse each column into distinct properties. ### Example 5: Convert CSV data in W3C Extended Log Format @@ -176,12 +177,17 @@ time cs-method cs-uri ### -Delimiter -Specifies the delimiter that separates the property values in the CSV strings. The default is a -comma (`,`). Enter a character, such as a colon (`:`). To specify a semicolon (`;`) enclose it in -single quotation marks. +Specifies the delimiter that separates the property values in the CSV data. The default is a comma +(`,`). + +Enter a character, such as a colon (`:`). To specify a semicolon (`;`), enclose it in single +quotation marks. To specify escaped special characters such as tab (`` `t ``), enclose it in double +quotation marks. -If you specify a character other than the actual string delimiter in the file, `ConvertFrom-Csv` -can't create the objects from the CSV strings and returns the CSV strings. +If the specified character doesn't match the actual delimiter in the CSV data, `ConvertFrom-Csv` +can't parse each column into distinct properties. In this case, it outputs one **PSCustomObject** +per row, each containing a single property whose name is the full header and whose value is the row +text. ```yaml Type: System.Char diff --git a/reference/5.1/Microsoft.PowerShell.Utility/ConvertTo-Csv.md b/reference/5.1/Microsoft.PowerShell.Utility/ConvertTo-Csv.md index 5b07a9678a99..943f69636dfa 100644 --- a/reference/5.1/Microsoft.PowerShell.Utility/ConvertTo-Csv.md +++ b/reference/5.1/Microsoft.PowerShell.Utility/ConvertTo-Csv.md @@ -2,7 +2,7 @@ external help file: Microsoft.PowerShell.Commands.Utility.dll-Help.xml Locale: en-US Module Name: Microsoft.PowerShell.Utility -ms.date: 03/14/2023 +ms.date: 12/27/2025 online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/convertto-csv?view=powershell-5.1&WT.mc_id=ps-gethelp schema: 2.0.0 title: ConvertTo-Csv @@ -11,6 +11,7 @@ title: ConvertTo-Csv # ConvertTo-Csv ## SYNOPSIS + Converts .NET objects into a series of character-separated value (CSV) strings. ## SYNTAX @@ -109,7 +110,10 @@ information header from the CSV output. ### -Delimiter Specifies the delimiter to separate the property values in CSV strings. The default is a comma -(`,`). Enter a character, such as a colon (`:`). To specify a semicolon (`;`) enclose it in single +(`,`). + +Enter a character, such as a colon (`:`). To specify a semicolon (`;`), enclose it in single +quotation marks. To specify escaped special characters such as tab (`` `t ``), enclose it in double quotation marks. ```yaml diff --git a/reference/5.1/Microsoft.PowerShell.Utility/Export-Csv.md b/reference/5.1/Microsoft.PowerShell.Utility/Export-Csv.md index 2b566898a32e..29cdca820654 100644 --- a/reference/5.1/Microsoft.PowerShell.Utility/Export-Csv.md +++ b/reference/5.1/Microsoft.PowerShell.Utility/Export-Csv.md @@ -2,7 +2,7 @@ external help file: Microsoft.PowerShell.Commands.Utility.dll-Help.xml Locale: en-US Module Name: Microsoft.PowerShell.Utility -ms.date: 03/14/2023 +ms.date: 12/27/2025 online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/export-csv?view=powershell-5.1&WT.mc_id=ps-gethelp schema: 2.0.0 aliases: @@ -13,6 +13,7 @@ title: Export-Csv # Export-Csv ## SYNOPSIS + Converts objects into a series of character-separated value (CSV) strings and saves the strings to a file. @@ -142,11 +143,12 @@ Get-Content -Path .\Processes.csv The `Get-Culture` cmdlet uses the nested properties **TextInfo** and **ListSeparator** and displays the current culture's default list separator. The `Get-Process` cmdlet gets **Process** objects. The process objects are sent down the pipeline to the `Export-Csv` cmdlet. `Export-Csv` converts the -process objects to a series of CSV strings. The **Path** parameter specifies that the `Processes.csv` -file is saved in the current directory. The **UseCulture** parameter uses the current culture's -default list separator as the delimiter. The **NoTypeInformation** parameter removes the **#TYPE** -information header from the CSV output and is not required in PowerShell 6. The `Get-Content` cmdlet -uses the **Path** parameter to display the file located in the current directory. +process objects to a series of CSV strings. The **Path** parameter specifies that the +`Processes.csv` file is saved in the current directory. The **UseCulture** parameter uses the +current culture's default list separator as the delimiter. The **NoTypeInformation** parameter +removes the **#TYPE** information header from the CSV output and is not required in PowerShell 6. +The `Get-Content` cmdlet uses the **Path** parameter to display the file located in the current +directory. ### Example 5: Export processes with type information @@ -176,10 +178,15 @@ This example describes how to export objects to a CSV file and use the **Append* objects to an existing file. ```powershell -$AppService = (Get-Service -DisplayName *Application* | Select-Object -Property DisplayName, Status) +$AppService = Get-Service -DisplayName *Application* | + Select-Object -Property DisplayName, Status + $AppService | Export-Csv -Path .\Services.Csv -NoTypeInformation Get-Content -Path .\Services.Csv -$WinService = (Get-Service -DisplayName *Windows* | Select-Object -Property DisplayName, Status) + +$WinService = Get-Service -DisplayName *Windows* | + Select-Object -Property DisplayName, Status + $WinService | Export-Csv -Path .\Services.csv -NoTypeInformation -Append Get-Content -Path .\Services.Csv ``` @@ -218,7 +225,8 @@ unexpected output is received, troubleshoot the pipeline syntax. ```powershell Get-Date | Select-Object -Property DateTime, Day, DayOfWeek, DayOfYear | - Export-Csv -Path .\DateTime.csv -NoTypeInformation + Export-Csv -Path .\DateTime.csv -NoTypeInformation + Get-Content -Path .\DateTime.csv ``` @@ -229,7 +237,8 @@ Get-Content -Path .\DateTime.csv ```powershell Get-Date | Format-Table -Property DateTime, Day, DayOfWeek, DayOfYear | - Export-Csv -Path .\FTDateTime.csv -NoTypeInformation + Export-Csv -Path .\FTDateTime.csv -NoTypeInformation + Get-Content -Path .\FTDateTime.csv ``` @@ -245,10 +254,10 @@ Get-Content -Path .\FTDateTime.csv The `Get-Date` cmdlet gets the **DateTime** object. The object is sent down the pipeline to the `Select-Object` cmdlet. `Select-Object` uses the **Property** parameter to select a subset of object properties. The object is sent down the pipeline to the `Export-Csv` cmdlet. `Export-Csv` converts -the object to a CSV format. The **Path** parameter specifies that the `DateTime.csv` file is saved in -the current directory. The **NoTypeInformation** parameter removes the **#TYPE** information header -from the CSV output and is not required in PowerShell 6. The `Get-Content` cmdlet uses the **Path** -parameter to display the CSV file located in the current directory. +the object to a CSV format. The **Path** parameter specifies that the `DateTime.csv` file is saved +in the current directory. The **NoTypeInformation** parameter removes the **#TYPE** information +header from the CSV output and is not required in PowerShell 6. The `Get-Content` cmdlet uses the +**Path** parameter to display the CSV file located in the current directory. When the `Format-Table` cmdlet is used within the pipeline to select properties unexpected results are received. `Format-Table` sends table format objects down the pipeline to the `Export-Csv` cmdlet @@ -372,8 +381,11 @@ Accept wildcard characters: False ### -Delimiter -Specifies a delimiter to separate the property values. The default is a comma (`,`). Enter a -character, such as a colon (`:`). To specify a semicolon (`;`), enclose it in quotation marks. +Specifies a delimiter to separate the property values. The default is a comma (`,`). + +Enter a character, such as a colon (`:`). To specify a semicolon (`;`), enclose it in single +quotation marks. To specify escaped special characters such as tab (`` `t ``), enclose it in double +quotation marks. ```yaml Type: System.Char diff --git a/reference/5.1/Microsoft.PowerShell.Utility/Import-Csv.md b/reference/5.1/Microsoft.PowerShell.Utility/Import-Csv.md index 0866ffe354fe..55dfdfaf5ac7 100644 --- a/reference/5.1/Microsoft.PowerShell.Utility/Import-Csv.md +++ b/reference/5.1/Microsoft.PowerShell.Utility/Import-Csv.md @@ -2,7 +2,7 @@ external help file: Microsoft.PowerShell.Commands.Utility.dll-Help.xml Locale: en-US Module Name: Microsoft.PowerShell.Utility -ms.date: 01/09/2025 +ms.date: 12/27/2025 online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/import-csv?view=powershell-5.1&WT.mc_id=ps-gethelp schema: 2.0.0 aliases: @@ -13,6 +13,7 @@ title: Import-Csv # Import-Csv ## SYNOPSIS + Creates table-like custom objects from the items in a character-separated value (CSV) file. ## SYNTAX @@ -271,8 +272,8 @@ Import-Csv -Path .\Projects.csv ``` ```Output -WARNING: One or more headers weren't specified. Default names starting with "H" have been used in -place of any missing headers. +WARNING: One or more headers weren't specified. Default names starting with "H" have been +used in place of any missing headers. ProjectID ProjectName H1 Completed --------- ----------- -- --------- @@ -292,12 +293,14 @@ displays a warning message because **H1** is a default header name. Specifies the delimiter that separates the property values in the CSV file. The default is a comma (`,`). -Enter a character, such as a colon (`:`). To specify a semicolon (`;`) enclose it in single +Enter a character, such as a colon (`:`). To specify a semicolon (`;`), enclose it in single quotation marks. To specify escaped special characters such as tab (`` `t ``), enclose it in double quotation marks. -If you specify a character other than the actual string delimiter in the file, `Import-Csv` can't -create the objects from the CSV strings and returns the full CSV strings. +If the specified character doesn't match the actual delimiter in the CSV data, `Import-Csv` can't +parse each column into distinct properties. In this case, it outputs one **PSCustomObject** per +row, each containing a single property whose name is the full header and whose value is the row +text. ```yaml Type: System.Char diff --git a/reference/7.4/Microsoft.PowerShell.Core/About/about_Format.ps1xml.md b/reference/7.4/Microsoft.PowerShell.Core/About/about_Format.ps1xml.md index 64ca92f95698..e4d49cef93ed 100644 --- a/reference/7.4/Microsoft.PowerShell.Core/About/about_Format.ps1xml.md +++ b/reference/7.4/Microsoft.PowerShell.Core/About/about_Format.ps1xml.md @@ -1,7 +1,7 @@ --- description: Beginning in PowerShell 6, the default views for objects are defined in PowerShell source code. You can create your own `Format.ps1xml` files to change the display of objects or to define default displays for new object types that you create in PowerShell. Locale: en-US -ms.date: 04/25/2022 +ms.date: 12/26/2025 online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_format.ps1xml?view=powershell-7.4&WT.mc_id=ps-gethelp schema: 2.0.0 title: about_Format.ps1xml @@ -93,8 +93,10 @@ To begin, get the format data from the source code file and create a `Format.ps1xml` file that contains the current view of the culture objects. ```powershell +New-Item -Path $HOME\Format -ItemType Directory -Force + Get-FormatData -TypeName System.Globalization.CultureInfo | - Export-FormatData -Path $HOME\Format\CultureInfo.Format.ps1xml + Export-FormatData -LiteralPath $HOME\Format\CultureInfo.Format.ps1xml ``` Open the `CultureInfo.Format.ps1xml` file in any XML or text editor, such as @@ -278,8 +280,8 @@ that the `` tag is intended to display. ### WideControl tag The `` tag typically contains a `` tag. The -`` tag contains one or more `` tags. A `` tag -contains one `` tag. +`` tag contains one or more `` tags. A `` +tag contains one `` tag. A `` tag must include either a `` tag or a `` tag. A `` tag specifies the property to display @@ -349,8 +351,9 @@ specific PowerShell version. ```powershell Get-FormatData -PowerShellVersion 5.1 -TypeName System.IO.DirectoryInfo | - Export-FormatData -Path ./MyGciView.Format.ps1xml -Update-FormatData -AppendPath ./MyGciView.Format.ps1xml + Export-FormatData -LiteralPath $HOME\Format\MyGciView.Format.ps1xml + +Update-FormatData -AppendPath $HOME\Format\MyGciView.Format.ps1xml ``` ```xml diff --git a/reference/7.4/Microsoft.PowerShell.Core/About/about_Pipelines.md b/reference/7.4/Microsoft.PowerShell.Core/About/about_Pipelines.md index fb66f53c097e..75ad2ab87abe 100644 --- a/reference/7.4/Microsoft.PowerShell.Core/About/about_Pipelines.md +++ b/reference/7.4/Microsoft.PowerShell.Core/About/about_Pipelines.md @@ -1,7 +1,7 @@ --- description: Combining commands into pipelines in the PowerShell Locale: en-US -ms.date: 10/02/2025 +ms.date: 12/28/2025 online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_pipelines?view=powershell-7.4&WT.mc_id=ps-gethelp schema: 2.0.0 title: about_Pipelines @@ -400,17 +400,15 @@ one at a time. ## Using native commands in the pipeline PowerShell allows you to include native external commands in the pipeline. -However, it's important to note that PowerShell's pipeline is object-oriented -and doesn't support raw byte data. -Piping or redirecting output from a native program that outputs raw byte data -converts the output to .NET strings. This conversion can cause corruption of -the raw data output. +Before PowerShell 7.4, piping or redirecting output from a native program that +outputs raw byte data converted the output to .NET strings. This conversion +caused corruption of the raw data output. -However, PowerShell 7.4 added the `PSNativeCommandPreserveBytePipe` -experimental feature that preserves byte-stream data when redirecting the -**stdout** stream of a native command to a file or when piping byte-stream data -to the **stdin** stream of a native command. +In PowerShell 7.4 or higher, the `PSNativeCommandPreserveBytePipe` experimental +feature is mainstream. This feature preserves byte-stream data when +redirecting the **stdout** stream of a native command to a file or when piping +byte-stream data to the **stdin** stream of a native command. For example, using the native command `curl` you can download a binary file and save it to disk using redirection. diff --git a/reference/7.4/Microsoft.PowerShell.Utility/ConvertFrom-Csv.md b/reference/7.4/Microsoft.PowerShell.Utility/ConvertFrom-Csv.md index 6980ee05592c..7032af9335ce 100644 --- a/reference/7.4/Microsoft.PowerShell.Utility/ConvertFrom-Csv.md +++ b/reference/7.4/Microsoft.PowerShell.Utility/ConvertFrom-Csv.md @@ -2,7 +2,7 @@ external help file: Microsoft.PowerShell.Commands.Utility.dll-Help.xml Locale: en-US Module Name: Microsoft.PowerShell.Utility -ms.date: 11/18/2025 +ms.date: 12/27/2025 online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/convertfrom-csv?view=powershell-7.4&WT.mc_id=ps-gethelp schema: 2.0.0 title: ConvertFrom-Csv @@ -10,6 +10,7 @@ title: ConvertFrom-Csv # ConvertFrom-Csv ## SYNOPSIS + Converts object properties in character-separated value (CSV) format into CSV versions of the original objects. @@ -145,7 +146,7 @@ the **InputObject** parameter and converts the CSV strings from the `$Services` When the **UseCulture** parameter is used, be sure that the current culture's default list separator matches the delimiter used in the CSV strings. Otherwise, `ConvertFrom-Csv` can't -generate objects from the CSV strings. +can't parse each column into distinct properties. ### Example 5: Convert CSV data in W3C Extended Log Format @@ -177,12 +178,17 @@ time cs-method cs-uri ### -Delimiter -Specifies the delimiter that separates the property values in the CSV strings. The default is a -comma (`,`). Enter a character, such as a colon (`:`). To specify a semicolon (`;`) enclose it in -single quotation marks. +Specifies the delimiter that separates the property values in the CSV data. The default is a comma +(`,`). + +Enter a character, such as a colon (`:`). To specify a semicolon (`;`), enclose it in single +quotation marks. To specify escaped special characters such as tab (`` `t ``), enclose it in double +quotation marks. -If you specify a character other than the actual string delimiter in the file, `ConvertFrom-Csv` -can't create the objects from the CSV strings and returns the CSV strings. +If the specified character doesn't match the actual delimiter in the CSV data, `ConvertFrom-Csv` +can't parse each column into distinct properties. In this case, it outputs one **PSCustomObject** +per row, each containing a single property whose name is the full header and whose value is the row +text. ```yaml Type: System.Char diff --git a/reference/7.4/Microsoft.PowerShell.Utility/ConvertTo-Csv.md b/reference/7.4/Microsoft.PowerShell.Utility/ConvertTo-Csv.md index 24b44cf2fe54..08c91d2de45a 100644 --- a/reference/7.4/Microsoft.PowerShell.Utility/ConvertTo-Csv.md +++ b/reference/7.4/Microsoft.PowerShell.Utility/ConvertTo-Csv.md @@ -2,7 +2,7 @@ external help file: Microsoft.PowerShell.Commands.Utility.dll-Help.xml Locale: en-US Module Name: Microsoft.PowerShell.Utility -ms.date: 03/14/2023 +ms.date: 12/27/2025 online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/convertto-csv?view=powershell-7.4&WT.mc_id=ps-gethelp schema: 2.0.0 title: ConvertTo-Csv @@ -11,6 +11,7 @@ title: ConvertTo-Csv # ConvertTo-Csv ## SYNOPSIS + Converts .NET objects into a series of character-separated value (CSV) strings. ## SYNTAX @@ -186,7 +187,10 @@ only the key is converted to CSV. ### -Delimiter Specifies the delimiter to separate the property values in CSV strings. The default is a comma -(`,`). Enter a character, such as a colon (`:`). To specify a semicolon (`;`) enclose it in single +(`,`). + +Enter a character, such as a colon (`:`). To specify a semicolon (`;`), enclose it in single +quotation marks. To specify escaped special characters such as tab (`` `t ``), enclose it in double quotation marks. ```yaml diff --git a/reference/7.4/Microsoft.PowerShell.Utility/Export-Csv.md b/reference/7.4/Microsoft.PowerShell.Utility/Export-Csv.md index b62fbaea6ced..d102d002f31c 100644 --- a/reference/7.4/Microsoft.PowerShell.Utility/Export-Csv.md +++ b/reference/7.4/Microsoft.PowerShell.Utility/Export-Csv.md @@ -2,7 +2,7 @@ external help file: Microsoft.PowerShell.Commands.Utility.dll-Help.xml Locale: en-US Module Name: Microsoft.PowerShell.Utility -ms.date: 03/15/2023 +ms.date: 12/27/2025 online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/export-csv?view=powershell-7.4&WT.mc_id=ps-gethelp schema: 2.0.0 aliases: @@ -13,6 +13,7 @@ title: Export-Csv # Export-Csv ## SYNOPSIS + Converts objects into a series of character-separated value (CSV) strings and saves the strings to a file. @@ -144,11 +145,12 @@ Get-Content -Path .\Processes.csv The `Get-Culture` cmdlet uses the nested properties **TextInfo** and **ListSeparator** and displays the current culture's default list separator. The `Get-Process` cmdlet gets **Process** objects. The process objects are sent down the pipeline to the `Export-Csv` cmdlet. `Export-Csv` converts the -process objects to a series of CSV strings. The **Path** parameter specifies that the `Processes.csv` -file is saved in the current directory. The **UseCulture** parameter uses the current culture's -default list separator as the delimiter. The **NoTypeInformation** parameter removes the **#TYPE** -information header from the CSV output and is not required in PowerShell 6. The `Get-Content` cmdlet -uses the **Path** parameter to display the file located in the current directory. +process objects to a series of CSV strings. The **Path** parameter specifies that the +`Processes.csv` file is saved in the current directory. The **UseCulture** parameter uses the +current culture's default list separator as the delimiter. The **NoTypeInformation** parameter +removes the **#TYPE** information header from the CSV output and is not required in PowerShell 6. +The `Get-Content` cmdlet uses the **Path** parameter to display the file located in the current +directory. ### Example 5: Export processes with type information @@ -179,10 +181,15 @@ This example describes how to export objects to a CSV file and use the **Append* objects to an existing file. ```powershell -$AppService = (Get-Service -DisplayName *Application* | Select-Object -Property DisplayName, Status) +$AppService = Get-Service -DisplayName *Application* | + Select-Object -Property DisplayName, Status + $AppService | Export-Csv -Path .\Services.Csv -NoTypeInformation Get-Content -Path .\Services.Csv -$WinService = (Get-Service -DisplayName *Windows* | Select-Object -Property DisplayName, Status) + +$WinService = Get-Service -DisplayName *Windows* | + Select-Object -Property DisplayName, Status + $WinService | Export-Csv -Path .\Services.csv -NoTypeInformation -Append Get-Content -Path .\Services.Csv ``` @@ -221,7 +228,8 @@ unexpected output is received, troubleshoot the pipeline syntax. ```powershell Get-Date | Select-Object -Property DateTime, Day, DayOfWeek, DayOfYear | - Export-Csv -Path .\DateTime.csv -NoTypeInformation + Export-Csv -Path .\DateTime.csv -NoTypeInformation + Get-Content -Path .\DateTime.csv ``` @@ -232,7 +240,8 @@ Get-Content -Path .\DateTime.csv ```powershell Get-Date | Format-Table -Property DateTime, Day, DayOfWeek, DayOfYear | - Export-Csv -Path .\FTDateTime.csv -NoTypeInformation + Export-Csv -Path .\FTDateTime.csv -NoTypeInformation + Get-Content -Path .\FTDateTime.csv ``` @@ -248,10 +257,10 @@ Get-Content -Path .\FTDateTime.csv The `Get-Date` cmdlet gets the **DateTime** object. The object is sent down the pipeline to the `Select-Object` cmdlet. `Select-Object` uses the **Property** parameter to select a subset of object properties. The object is sent down the pipeline to the `Export-Csv` cmdlet. `Export-Csv` converts -the object to a CSV format. The **Path** parameter specifies that the `DateTime.csv` file is saved in -the current directory. The **NoTypeInformation** parameter removes the **#TYPE** information header -from the CSV output and is not required in PowerShell 6. The `Get-Content` cmdlet uses the **Path** -parameter to display the CSV file located in the current directory. +the object to a CSV format. The **Path** parameter specifies that the `DateTime.csv` file is saved +in the current directory. The **NoTypeInformation** parameter removes the **#TYPE** information +header from the CSV output and is not required in PowerShell 6. The `Get-Content` cmdlet uses the +**Path** parameter to display the CSV file located in the current directory. When the `Format-Table` cmdlet is used within the pipeline to select properties unexpected results are received. `Format-Table` sends table format objects down the pipeline to the `Export-Csv` cmdlet @@ -456,8 +465,11 @@ Accept wildcard characters: False ### -Delimiter -Specifies a delimiter to separate the property values. The default is a comma (`,`). Enter a -character, such as a colon (`:`). To specify a semicolon (`;`), enclose it in quotation marks. +Specifies a delimiter to separate the property values. The default is a comma (`,`). + +Enter a character, such as a colon (`:`). To specify a semicolon (`;`), enclose it in single +quotation marks. To specify escaped special characters such as tab (`` `t ``), enclose it in double +quotation marks. ```yaml Type: System.Char diff --git a/reference/7.4/Microsoft.PowerShell.Utility/Import-Csv.md b/reference/7.4/Microsoft.PowerShell.Utility/Import-Csv.md index a65d9de00161..451f034bf86d 100644 --- a/reference/7.4/Microsoft.PowerShell.Utility/Import-Csv.md +++ b/reference/7.4/Microsoft.PowerShell.Utility/Import-Csv.md @@ -2,7 +2,7 @@ external help file: Microsoft.PowerShell.Commands.Utility.dll-Help.xml Locale: en-US Module Name: Microsoft.PowerShell.Utility -ms.date: 01/09/2025 +ms.date: 12/27/2025 online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/import-csv?view=powershell-7.4&WT.mc_id=ps-gethelp schema: 2.0.0 aliases: @@ -13,6 +13,7 @@ title: Import-Csv # Import-Csv ## SYNOPSIS + Creates table-like custom objects from the items in a character-separated value (CSV) file. ## SYNTAX @@ -284,8 +285,8 @@ Import-Csv -Path .\Projects.csv ``` ```Output -WARNING: One or more headers weren't specified. Default names starting with "H" have been used in -place of any missing headers. +WARNING: One or more headers weren't specified. Default names starting with "H" have been +used in place of any missing headers. ProjectID ProjectName H1 Completed --------- ----------- -- --------- @@ -305,12 +306,14 @@ displays a warning message because **H1** is a default header name. Specifies the delimiter that separates the property values in the CSV file. The default is a comma (`,`). -Enter a character, such as a colon (`:`). To specify a semicolon (`;`) enclose it in single +Enter a character, such as a colon (`:`). To specify a semicolon (`;`), enclose it in single quotation marks. To specify escaped special characters such as tab (`` `t ``), enclose it in double quotation marks. -If you specify a character other than the actual string delimiter in the file, `Import-Csv` can't -create the objects from the CSV strings and returns the full CSV strings. +If the specified character doesn't match the actual delimiter in the CSV data, `Import-Csv` can't +parse each column into distinct properties. In this case, it outputs one **PSCustomObject** per +row, each containing a single property whose name is the full header and whose value is the row +text. ```yaml Type: System.Char diff --git a/reference/7.5/Microsoft.PowerShell.Core/About/about_Format.ps1xml.md b/reference/7.5/Microsoft.PowerShell.Core/About/about_Format.ps1xml.md index d74b9d8de1c1..ff09056394e1 100644 --- a/reference/7.5/Microsoft.PowerShell.Core/About/about_Format.ps1xml.md +++ b/reference/7.5/Microsoft.PowerShell.Core/About/about_Format.ps1xml.md @@ -1,7 +1,7 @@ --- description: Beginning in PowerShell 6, the default views for objects are defined in PowerShell source code. You can create your own `Format.ps1xml` files to change the display of objects or to define default displays for new object types that you create in PowerShell. Locale: en-US -ms.date: 04/25/2022 +ms.date: 12/26/2025 online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_format.ps1xml?view=powershell-7.5&WT.mc_id=ps-gethelp schema: 2.0.0 title: about_Format.ps1xml @@ -93,8 +93,10 @@ To begin, get the format data from the source code file and create a `Format.ps1xml` file that contains the current view of the culture objects. ```powershell +New-Item -Path $HOME\Format -ItemType Directory -Force + Get-FormatData -TypeName System.Globalization.CultureInfo | - Export-FormatData -Path $HOME\Format\CultureInfo.Format.ps1xml + Export-FormatData -LiteralPath $HOME\Format\CultureInfo.Format.ps1xml ``` Open the `CultureInfo.Format.ps1xml` file in any XML or text editor, such as @@ -278,8 +280,8 @@ that the `` tag is intended to display. ### WideControl tag The `` tag typically contains a `` tag. The -`` tag contains one or more `` tags. A `` tag -contains one `` tag. +`` tag contains one or more `` tags. A `` +tag contains one `` tag. A `` tag must include either a `` tag or a `` tag. A `` tag specifies the property to display @@ -349,8 +351,9 @@ specific PowerShell version. ```powershell Get-FormatData -PowerShellVersion 5.1 -TypeName System.IO.DirectoryInfo | - Export-FormatData -Path ./MyGciView.Format.ps1xml -Update-FormatData -AppendPath ./MyGciView.Format.ps1xml + Export-FormatData -Path $HOME\Format\MyGciView.Format.ps1xml + +Update-FormatData -AppendPath $HOME\Format\MyGciView.Format.ps1xml ``` ```xml diff --git a/reference/7.5/Microsoft.PowerShell.Core/About/about_Pipelines.md b/reference/7.5/Microsoft.PowerShell.Core/About/about_Pipelines.md index f4a6950b0c5d..2b1a48b94ee6 100644 --- a/reference/7.5/Microsoft.PowerShell.Core/About/about_Pipelines.md +++ b/reference/7.5/Microsoft.PowerShell.Core/About/about_Pipelines.md @@ -1,7 +1,7 @@ --- description: Combining commands into pipelines in the PowerShell Locale: en-US -ms.date: 10/02/2025 +ms.date: 12/28/2025 online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_pipelines?view=powershell-7.5&WT.mc_id=ps-gethelp schema: 2.0.0 title: about_Pipelines @@ -400,17 +400,15 @@ one at a time. ## Using native commands in the pipeline PowerShell allows you to include native external commands in the pipeline. -However, it's important to note that PowerShell's pipeline is object-oriented -and doesn't support raw byte data. -Piping or redirecting output from a native program that outputs raw byte data -converts the output to .NET strings. This conversion can cause corruption of -the raw data output. +Before PowerShell 7.4, piping or redirecting output from a native program that +outputs raw byte data converted the output to .NET strings. This conversion +caused corruption of the raw data output. -However, PowerShell 7.4 added the `PSNativeCommandPreserveBytePipe` -experimental feature that preserves byte-stream data when redirecting the -**stdout** stream of a native command to a file or when piping byte-stream data -to the **stdin** stream of a native command. +In PowerShell 7.4 or higher, the `PSNativeCommandPreserveBytePipe` experimental +feature is mainstream. This feature preserves byte-stream data when +redirecting the **stdout** stream of a native command to a file or when piping +byte-stream data to the **stdin** stream of a native command. For example, using the native command `curl` you can download a binary file and save it to disk using redirection. diff --git a/reference/7.5/Microsoft.PowerShell.Utility/ConvertFrom-Csv.md b/reference/7.5/Microsoft.PowerShell.Utility/ConvertFrom-Csv.md index ad1d86c5b7d1..82bab5b3cbb0 100644 --- a/reference/7.5/Microsoft.PowerShell.Utility/ConvertFrom-Csv.md +++ b/reference/7.5/Microsoft.PowerShell.Utility/ConvertFrom-Csv.md @@ -2,7 +2,7 @@ external help file: Microsoft.PowerShell.Commands.Utility.dll-Help.xml Locale: en-US Module Name: Microsoft.PowerShell.Utility -ms.date: 11/18/2025 +ms.date: 12/27/2025 online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/convertfrom-csv?view=powershell-7.5&WT.mc_id=ps-gethelp schema: 2.0.0 title: ConvertFrom-Csv @@ -10,6 +10,7 @@ title: ConvertFrom-Csv # ConvertFrom-Csv ## SYNOPSIS + Converts object properties in character-separated value (CSV) format into CSV versions of the original objects. @@ -145,7 +146,7 @@ the **InputObject** parameter and converts the CSV strings from the `$Services` When the **UseCulture** parameter is used, be sure that the current culture's default list separator matches the delimiter used in the CSV strings. Otherwise, `ConvertFrom-Csv` can't -generate objects from the CSV strings. +can't parse each column into distinct properties. ### Example 5: Convert CSV data in W3C Extended Log Format @@ -177,12 +178,17 @@ time cs-method cs-uri ### -Delimiter -Specifies the delimiter that separates the property values in the CSV strings. The default is a -comma (`,`). Enter a character, such as a colon (`:`). To specify a semicolon (`;`) enclose it in -single quotation marks. +Specifies the delimiter that separates the property values in the CSV data. The default is a comma +(`,`). + +Enter a character, such as a colon (`:`). To specify a semicolon (`;`), enclose it in single +quotation marks. To specify escaped special characters such as tab (`` `t ``), enclose it in double +quotation marks. -If you specify a character other than the actual string delimiter in the file, `ConvertFrom-Csv` -can't create the objects from the CSV strings and returns the CSV strings. +If the specified character doesn't match the actual delimiter in the CSV data, `ConvertFrom-Csv` +can't parse each column into distinct properties. In this case, it outputs one **PSCustomObject** +per row, each containing a single property whose name is the full header and whose value is the row +text. ```yaml Type: System.Char diff --git a/reference/7.5/Microsoft.PowerShell.Utility/ConvertTo-Csv.md b/reference/7.5/Microsoft.PowerShell.Utility/ConvertTo-Csv.md index 461b9497ef61..6680c935b611 100644 --- a/reference/7.5/Microsoft.PowerShell.Utility/ConvertTo-Csv.md +++ b/reference/7.5/Microsoft.PowerShell.Utility/ConvertTo-Csv.md @@ -2,7 +2,7 @@ external help file: Microsoft.PowerShell.Commands.Utility.dll-Help.xml Locale: en-US Module Name: Microsoft.PowerShell.Utility -ms.date: 03/14/2023 +ms.date: 12/27/2025 online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/convertto-csv?view=powershell-7.5&WT.mc_id=ps-gethelp schema: 2.0.0 title: ConvertTo-Csv @@ -11,6 +11,7 @@ title: ConvertTo-Csv # ConvertTo-Csv ## SYNOPSIS + Converts .NET objects into a series of character-separated value (CSV) strings. ## SYNTAX @@ -188,7 +189,10 @@ only the key is converted to CSV. ### -Delimiter Specifies the delimiter to separate the property values in CSV strings. The default is a comma -(`,`). Enter a character, such as a colon (`:`). To specify a semicolon (`;`) enclose it in single +(`,`). + +Enter a character, such as a colon (`:`). To specify a semicolon (`;`), enclose it in single +quotation marks. To specify escaped special characters such as tab (`` `t ``), enclose it in double quotation marks. ```yaml diff --git a/reference/7.5/Microsoft.PowerShell.Utility/Export-Csv.md b/reference/7.5/Microsoft.PowerShell.Utility/Export-Csv.md index 0e5f58fddaba..9482644e2f3f 100644 --- a/reference/7.5/Microsoft.PowerShell.Utility/Export-Csv.md +++ b/reference/7.5/Microsoft.PowerShell.Utility/Export-Csv.md @@ -2,7 +2,7 @@ external help file: Microsoft.PowerShell.Commands.Utility.dll-Help.xml Locale: en-US Module Name: Microsoft.PowerShell.Utility -ms.date: 03/15/2023 +ms.date: 12/27/2025 online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/export-csv?view=powershell-7.5&WT.mc_id=ps-gethelp schema: 2.0.0 aliases: @@ -13,6 +13,7 @@ title: Export-Csv # Export-Csv ## SYNOPSIS + Converts objects into a series of character-separated value (CSV) strings and saves the strings to a file. @@ -460,8 +461,11 @@ Accept wildcard characters: False ### -Delimiter -Specifies a delimiter to separate the property values. The default is a comma (`,`). Enter a -character, such as a colon (`:`). To specify a semicolon (`;`), enclose it in quotation marks. +Specifies a delimiter to separate the property values. The default is a comma (`,`). + +Enter a character, such as a colon (`:`). To specify a semicolon (`;`), enclose it in single +quotation marks. To specify escaped special characters such as tab (`` `t ``), enclose it in double +quotation marks. ```yaml Type: System.Char diff --git a/reference/7.5/Microsoft.PowerShell.Utility/Import-Csv.md b/reference/7.5/Microsoft.PowerShell.Utility/Import-Csv.md index 3af35608f0f0..5d2e0f19caee 100644 --- a/reference/7.5/Microsoft.PowerShell.Utility/Import-Csv.md +++ b/reference/7.5/Microsoft.PowerShell.Utility/Import-Csv.md @@ -2,7 +2,7 @@ external help file: Microsoft.PowerShell.Commands.Utility.dll-Help.xml Locale: en-US Module Name: Microsoft.PowerShell.Utility -ms.date: 01/09/2025 +ms.date: 12/27/2025 online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/import-csv?view=powershell-7.5&WT.mc_id=ps-gethelp schema: 2.0.0 aliases: @@ -13,6 +13,7 @@ title: Import-Csv # Import-Csv ## SYNOPSIS + Creates table-like custom objects from the items in a character-separated value (CSV) file. ## SYNTAX @@ -284,8 +285,8 @@ Import-Csv -Path .\Projects.csv ``` ```Output -WARNING: One or more headers weren't specified. Default names starting with "H" have been used in -place of any missing headers. +WARNING: One or more headers weren't specified. Default names starting with "H" have been +used in place of any missing headers. ProjectID ProjectName H1 Completed --------- ----------- -- --------- @@ -305,12 +306,14 @@ displays a warning message because **H1** is a default header name. Specifies the delimiter that separates the property values in the CSV file. The default is a comma (`,`). -Enter a character, such as a colon (`:`). To specify a semicolon (`;`) enclose it in single +Enter a character, such as a colon (`:`). To specify a semicolon (`;`), enclose it in single quotation marks. To specify escaped special characters such as tab (`` `t ``), enclose it in double quotation marks. -If you specify a character other than the actual string delimiter in the file, `Import-Csv` can't -create the objects from the CSV strings and returns the full CSV strings. +If the specified character doesn't match the actual delimiter in the CSV data, `Import-Csv` can't +parse each column into distinct properties. In this case, it outputs one **PSCustomObject** per +row, each containing a single property whose name is the full header and whose value is the row +text. ```yaml Type: System.Char diff --git a/reference/7.6/Microsoft.PowerShell.Core/About/about_Format.ps1xml.md b/reference/7.6/Microsoft.PowerShell.Core/About/about_Format.ps1xml.md index 6d6db494c8f3..b8cefcf7a508 100644 --- a/reference/7.6/Microsoft.PowerShell.Core/About/about_Format.ps1xml.md +++ b/reference/7.6/Microsoft.PowerShell.Core/About/about_Format.ps1xml.md @@ -1,7 +1,7 @@ --- description: Beginning in PowerShell 6, the default views for objects are defined in PowerShell source code. You can create your own `Format.ps1xml` files to change the display of objects or to define default displays for new object types that you create in PowerShell. Locale: en-US -ms.date: 04/25/2022 +ms.date: 12/26/2025 online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_format.ps1xml?view=powershell-7.6&WT.mc_id=ps-gethelp schema: 2.0.0 title: about_Format.ps1xml @@ -93,8 +93,10 @@ To begin, get the format data from the source code file and create a `Format.ps1xml` file that contains the current view of the culture objects. ```powershell +New-Item -Path $HOME\Format -ItemType Directory -Force + Get-FormatData -TypeName System.Globalization.CultureInfo | - Export-FormatData -Path $HOME\Format\CultureInfo.Format.ps1xml + Export-FormatData -LiteralPath $HOME\Format\CultureInfo.Format.ps1xml ``` Open the `CultureInfo.Format.ps1xml` file in any XML or text editor, such as @@ -278,8 +280,8 @@ that the `` tag is intended to display. ### WideControl tag The `` tag typically contains a `` tag. The -`` tag contains one or more `` tags. A `` tag -contains one `` tag. +`` tag contains one or more `` tags. A `` +tag contains one `` tag. A `` tag must include either a `` tag or a `` tag. A `` tag specifies the property to display @@ -349,8 +351,9 @@ specific PowerShell version. ```powershell Get-FormatData -PowerShellVersion 5.1 -TypeName System.IO.DirectoryInfo | - Export-FormatData -Path ./MyGciView.Format.ps1xml -Update-FormatData -AppendPath ./MyGciView.Format.ps1xml + Export-FormatData -Path $HOME\Format\MyGciView.Format.ps1xml + +Update-FormatData -AppendPath $HOME\Format\MyGciView.Format.ps1xml ``` ```xml diff --git a/reference/7.6/Microsoft.PowerShell.Core/About/about_Pipelines.md b/reference/7.6/Microsoft.PowerShell.Core/About/about_Pipelines.md index 3b5ba1acf083..8dbe33db1254 100644 --- a/reference/7.6/Microsoft.PowerShell.Core/About/about_Pipelines.md +++ b/reference/7.6/Microsoft.PowerShell.Core/About/about_Pipelines.md @@ -1,7 +1,7 @@ --- description: Combining commands into pipelines in the PowerShell Locale: en-US -ms.date: 10/02/2025 +ms.date: 12/28/2025 online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_pipelines?view=powershell-7.6&WT.mc_id=ps-gethelp schema: 2.0.0 title: about_Pipelines @@ -400,17 +400,15 @@ one at a time. ## Using native commands in the pipeline PowerShell allows you to include native external commands in the pipeline. -However, it's important to note that PowerShell's pipeline is object-oriented -and doesn't support raw byte data. -Piping or redirecting output from a native program that outputs raw byte data -converts the output to .NET strings. This conversion can cause corruption of -the raw data output. +Before PowerShell 7.4, piping or redirecting output from a native program that +outputs raw byte data converted the output to .NET strings. This conversion +caused corruption of the raw data output. -However, PowerShell 7.4 added the `PSNativeCommandPreserveBytePipe` -experimental feature that preserves byte-stream data when redirecting the -**stdout** stream of a native command to a file or when piping byte-stream data -to the **stdin** stream of a native command. +In PowerShell 7.4 or higher, the `PSNativeCommandPreserveBytePipe` experimental +feature is mainstream. This feature preserves byte-stream data when +redirecting the **stdout** stream of a native command to a file or when piping +byte-stream data to the **stdin** stream of a native command. For example, using the native command `curl` you can download a binary file and save it to disk using redirection. diff --git a/reference/7.6/Microsoft.PowerShell.Utility/ConvertFrom-Csv.md b/reference/7.6/Microsoft.PowerShell.Utility/ConvertFrom-Csv.md index b8e0ee377713..fcb9eee839bd 100644 --- a/reference/7.6/Microsoft.PowerShell.Utility/ConvertFrom-Csv.md +++ b/reference/7.6/Microsoft.PowerShell.Utility/ConvertFrom-Csv.md @@ -2,7 +2,7 @@ external help file: Microsoft.PowerShell.Commands.Utility.dll-Help.xml Locale: en-US Module Name: Microsoft.PowerShell.Utility -ms.date: 11/18/2025 +ms.date: 12/27/2025 online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/convertfrom-csv?view=powershell-7.6&WT.mc_id=ps-gethelp schema: 2.0.0 title: ConvertFrom-Csv @@ -10,6 +10,7 @@ title: ConvertFrom-Csv # ConvertFrom-Csv ## SYNOPSIS + Converts object properties in character-separated value (CSV) format into CSV versions of the original objects. @@ -145,7 +146,7 @@ the **InputObject** parameter and converts the CSV strings from the `$Services` When the **UseCulture** parameter is used, be sure that the current culture's default list separator matches the delimiter used in the CSV strings. Otherwise, `ConvertFrom-Csv` can't -generate objects from the CSV strings. +can't parse each column into distinct properties. ### Example 5: Convert CSV data in W3C Extended Log Format @@ -177,12 +178,17 @@ time cs-method cs-uri ### -Delimiter -Specifies the delimiter that separates the property values in the CSV strings. The default is a -comma (`,`). Enter a character, such as a colon (`:`). To specify a semicolon (`;`) enclose it in -single quotation marks. +Specifies the delimiter that separates the property values in the CSV data. The default is a comma +(`,`). + +Enter a character, such as a colon (`:`). To specify a semicolon (`;`), enclose it in single +quotation marks. To specify escaped special characters such as tab (`` `t ``), enclose it in double +quotation marks. -If you specify a character other than the actual string delimiter in the file, `ConvertFrom-Csv` -can't create the objects from the CSV strings and returns the CSV strings. +If the specified character doesn't match the actual delimiter in the CSV data, `ConvertFrom-Csv` +can't parse each column into distinct properties. In this case, it outputs one **PSCustomObject** +per row, each containing a single property whose name is the full header and whose value is the row +text. ```yaml Type: System.Char diff --git a/reference/7.6/Microsoft.PowerShell.Utility/ConvertTo-Csv.md b/reference/7.6/Microsoft.PowerShell.Utility/ConvertTo-Csv.md index 268917fbef92..4521d66a274c 100644 --- a/reference/7.6/Microsoft.PowerShell.Utility/ConvertTo-Csv.md +++ b/reference/7.6/Microsoft.PowerShell.Utility/ConvertTo-Csv.md @@ -2,7 +2,7 @@ external help file: Microsoft.PowerShell.Commands.Utility.dll-Help.xml Locale: en-US Module Name: Microsoft.PowerShell.Utility -ms.date: 03/14/2023 +ms.date: 12/27/2025 online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/convertto-csv?view=powershell-7.6&WT.mc_id=ps-gethelp schema: 2.0.0 title: ConvertTo-Csv @@ -11,6 +11,7 @@ title: ConvertTo-Csv # ConvertTo-Csv ## SYNOPSIS + Converts .NET objects into a series of character-separated value (CSV) strings. ## SYNTAX @@ -186,7 +187,10 @@ only the key is converted to CSV. ### -Delimiter Specifies the delimiter to separate the property values in CSV strings. The default is a comma -(`,`). Enter a character, such as a colon (`:`). To specify a semicolon (`;`) enclose it in single +(`,`). + +Enter a character, such as a colon (`:`). To specify a semicolon (`;`), enclose it in single +quotation marks. To specify escaped special characters such as tab (`` `t ``), enclose it in double quotation marks. ```yaml diff --git a/reference/7.6/Microsoft.PowerShell.Utility/Export-Csv.md b/reference/7.6/Microsoft.PowerShell.Utility/Export-Csv.md index e0efa06265ac..f6aed2d3ddf1 100644 --- a/reference/7.6/Microsoft.PowerShell.Utility/Export-Csv.md +++ b/reference/7.6/Microsoft.PowerShell.Utility/Export-Csv.md @@ -2,7 +2,7 @@ external help file: Microsoft.PowerShell.Commands.Utility.dll-Help.xml Locale: en-US Module Name: Microsoft.PowerShell.Utility -ms.date: 03/15/2023 +ms.date: 12/27/2025 online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/export-csv?view=powershell-7.6&WT.mc_id=ps-gethelp schema: 2.0.0 aliases: @@ -13,6 +13,7 @@ title: Export-Csv # Export-Csv ## SYNOPSIS + Converts objects into a series of character-separated value (CSV) strings and saves the strings to a file. @@ -179,10 +180,15 @@ This example describes how to export objects to a CSV file and use the **Append* objects to an existing file. ```powershell -$AppService = (Get-Service -DisplayName *Application* | Select-Object -Property DisplayName, Status) +$AppService = Get-Service -DisplayName *Application* | + Select-Object -Property DisplayName, Status + $AppService | Export-Csv -Path .\Services.Csv -NoTypeInformation Get-Content -Path .\Services.Csv -$WinService = (Get-Service -DisplayName *Windows* | Select-Object -Property DisplayName, Status) + +$WinService = Get-Service -DisplayName *Windows* | + Select-Object -Property DisplayName, Status + $WinService | Export-Csv -Path .\Services.csv -NoTypeInformation -Append Get-Content -Path .\Services.Csv ``` @@ -221,7 +227,8 @@ unexpected output is received, troubleshoot the pipeline syntax. ```powershell Get-Date | Select-Object -Property DateTime, Day, DayOfWeek, DayOfYear | - Export-Csv -Path .\DateTime.csv -NoTypeInformation + Export-Csv -Path .\DateTime.csv -NoTypeInformation + Get-Content -Path .\DateTime.csv ``` @@ -232,7 +239,8 @@ Get-Content -Path .\DateTime.csv ```powershell Get-Date | Format-Table -Property DateTime, Day, DayOfWeek, DayOfYear | - Export-Csv -Path .\FTDateTime.csv -NoTypeInformation + Export-Csv -Path .\FTDateTime.csv -NoTypeInformation + Get-Content -Path .\FTDateTime.csv ``` @@ -456,8 +464,11 @@ Accept wildcard characters: False ### -Delimiter -Specifies a delimiter to separate the property values. The default is a comma (`,`). Enter a -character, such as a colon (`:`). To specify a semicolon (`;`), enclose it in quotation marks. +Specifies a delimiter to separate the property values. The default is a comma (`,`). + +Enter a character, such as a colon (`:`). To specify a semicolon (`;`), enclose it in single +quotation marks. To specify escaped special characters such as tab (`` `t ``), enclose it in double +quotation marks. ```yaml Type: System.Char diff --git a/reference/7.6/Microsoft.PowerShell.Utility/Import-Csv.md b/reference/7.6/Microsoft.PowerShell.Utility/Import-Csv.md index 2fa2ddfa0444..794c152f7b4c 100644 --- a/reference/7.6/Microsoft.PowerShell.Utility/Import-Csv.md +++ b/reference/7.6/Microsoft.PowerShell.Utility/Import-Csv.md @@ -2,7 +2,7 @@ external help file: Microsoft.PowerShell.Commands.Utility.dll-Help.xml Locale: en-US Module Name: Microsoft.PowerShell.Utility -ms.date: 01/09/2025 +ms.date: 12/27/2025 online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/import-csv?view=powershell-7.6&WT.mc_id=ps-gethelp schema: 2.0.0 aliases: @@ -13,6 +13,7 @@ title: Import-Csv # Import-Csv ## SYNOPSIS + Creates table-like custom objects from the items in a character-separated value (CSV) file. ## SYNTAX @@ -284,8 +285,8 @@ Import-Csv -Path .\Projects.csv ``` ```Output -WARNING: One or more headers weren't specified. Default names starting with "H" have been used in -place of any missing headers. +WARNING: One or more headers weren't specified. Default names starting with "H" have been +used in place of any missing headers. ProjectID ProjectName H1 Completed --------- ----------- -- --------- @@ -305,12 +306,14 @@ displays a warning message because **H1** is a default header name. Specifies the delimiter that separates the property values in the CSV file. The default is a comma (`,`). -Enter a character, such as a colon (`:`). To specify a semicolon (`;`) enclose it in single +Enter a character, such as a colon (`:`). To specify a semicolon (`;`), enclose it in single quotation marks. To specify escaped special characters such as tab (`` `t ``), enclose it in double quotation marks. -If you specify a character other than the actual string delimiter in the file, `Import-Csv` can't -create the objects from the CSV strings and returns the full CSV strings. +If the specified character doesn't match the actual delimiter in the CSV data, `Import-Csv` can't +parse each column into distinct properties. In this case, it outputs one **PSCustomObject** per +row, each containing a single property whose name is the full header and whose value is the row +text. ```yaml Type: System.Char diff --git a/reference/docs-conceptual/developer/format/how-to-create-a-formatting-file-format-ps1xml.md b/reference/docs-conceptual/developer/format/how-to-create-a-formatting-file-format-ps1xml.md index a41ec614682a..4348a6f1d239 100644 --- a/reference/docs-conceptual/developer/format/how-to-create-a-formatting-file-format-ps1xml.md +++ b/reference/docs-conceptual/developer/format/how-to-create-a-formatting-file-format-ps1xml.md @@ -1,25 +1,25 @@ --- -description: How to Create a Formatting File (.format.ps1xml) -ms.date: 08/23/2021 -title: How to Create a Formatting File (.format.ps1xml) +description: How to Create a Formatting File (Format.ps1xml) +ms.date: 12/26/2025 +title: How to Create a Formatting File (Format.ps1xml) --- -# How to Create a Formatting File (.format.ps1xml) +# How to Create a Formatting File (Format.ps1xml) -This topic describes how to create a formatting file (.format.ps1xml). +This topic describes how to create a formatting file (`Format.ps1xml`). > [!NOTE] > You can also create a formatting file by making a copy of one of the files provided by Windows -> PowerShell. If you make a copy of an existing file, delete the existing digital signature, and add -> your own signature to the new file. +> PowerShell. To protect the users of your `Format.ps1xml` file, sign the file using a digital +> signature. For more information, see [about_Signing][01]. -## Create a .format.ps1xml file. +## Create a Format.ps1xml file -1. Create a text file (.txt) using a text editor such as Notepad. +1. Open a new text file using a text editor such as Visual Studio Code. 1. Copy the following lines into the formatting file. ```xml - + @@ -32,14 +32,20 @@ This topic describes how to create a formatting file (.format.ps1xml). - The `` tags define the `ViewDefinitions` node. All views are defined within this node. -1. Save the file to the Windows PowerShell installation folder, to your module folder, or to a +1. Save the file to a folder of your choice. If you are writing a module, save the file to a subfolder of the module folder. Use the following name format when you save the file: - `MyFile.format.ps1xml`. Formatting files must use the `.format.ps1xml` extension. + `MyFile.Format.ps1xml`. Formatting files must use the `.ps1xml` extension. You are now ready to add views to the formatting file. There is no limit to the number of views that can be defined in a formatting file. You can add a single view for each object, multiple views for the same object, or a single view that is used by multiple objects. -## See Also +## See also -[Writing a Windows PowerShell Formatting and Types File](./writing-a-powershell-formatting-file.md) +- [Formatting File Overview][02] +- [Formatting File Concepts][03] + + +[01]: /powershell/module/microsoft.powershell.core/about/about_signing +[02]: ./formatting-file-overview.md +[03]: ./formatting-file-concepts.md diff --git a/reference/docs-conceptual/whats-new/What-s-New-in-PowerShell-74.md b/reference/docs-conceptual/whats-new/What-s-New-in-PowerShell-74.md index b03ff2ad2909..f89c2f4c4952 100644 --- a/reference/docs-conceptual/whats-new/What-s-New-in-PowerShell-74.md +++ b/reference/docs-conceptual/whats-new/What-s-New-in-PowerShell-74.md @@ -27,7 +27,7 @@ For a complete list of changes, see the [CHANGELOG][chg] in the GitHub repositor - Output from `Test-Connection` now includes more detailed information about TCP connection tests - .NET introduced changes that affected `Test-Connection`. The cmdlet now returns an error about the need to use `sudo` on Linux platforms when using a custom buffer size ([#20369][20369]) -- Experimental feature [PSNativeCommandPreserveBytePipe][10] is now mainstream. PowerShell now +- Experimental feature [PSNativeCommandPreserveBytePipe][11] is now mainstream. PowerShell now preserves the byte-stream data when redirecting the **stdout** stream of a native command to a file or when piping byte-stream data to the stdin stream of a native command. - Change how relative paths in `Resolve-Path` are handled when using the **RelativeBasePath** @@ -232,7 +232,7 @@ For more information about the Experimental Features, see [Using Experimental Fe [08]: /powershell/module/microsoft.powershell.core/about/about_ansi_terminals [09]: /powershell/module/microsoft.powershell.core/about/about_preference_variables#psnativecommandargumentpassing [10]: /powershell/module/microsoft.powershell.core/about/about_preference_variables#psnativecommanduseerroractionpreference -[11]: /powershell/module/microsoft.powershell.core/about/about_redirection?view=powershell-7.4&preserve-view=true#redirecting-output-from-native-commands +[11]: /powershell/module/microsoft.powershell.core/about/about_pipelines#using-native-commands-in-the-pipeline [12]: /powershell/module/microsoft.powershell.psresourceget [13]: /powershell/module/psreadline [14]: https://json-schema.org/understanding-json-schema/reference/schema