Skip to content

Commit 3dddc0c

Browse files
Clarify PSNativeCommandPreserveBytePipe is mainstream (#12619)
* Clarify experimental feature is mainstream Previous verbiage in about_Pipelines wasn't clear that PSNativeCommandPreserveBytePipe is mainstream in PS 7.4. * Fix wrong feature link in 7.4 release notes PSNativeCommandPreserveBytePipe was using the wrong link reference (10 rather than 11). The linked doc has also been changed to `about_Pipelines`, as this explicitly mentions the (now mainstream) feature by name. * Apply suggestions from review --------- Co-authored-by: Mikey Lombardi (He/Him) <michael.t.lombardi@gmail.com>
1 parent 4a6a36f commit 3dddc0c

File tree

4 files changed

+26
-32
lines changed

4 files changed

+26
-32
lines changed

reference/7.4/Microsoft.PowerShell.Core/About/about_Pipelines.md

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
description: Combining commands into pipelines in the PowerShell
33
Locale: en-US
4-
ms.date: 10/02/2025
4+
ms.date: 12/28/2025
55
online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_pipelines?view=powershell-7.4&WT.mc_id=ps-gethelp
66
schema: 2.0.0
77
title: about_Pipelines
@@ -400,17 +400,15 @@ one at a time.
400400
## Using native commands in the pipeline
401401

402402
PowerShell allows you to include native external commands in the pipeline.
403-
However, it's important to note that PowerShell's pipeline is object-oriented
404-
and doesn't support raw byte data.
405403

406-
Piping or redirecting output from a native program that outputs raw byte data
407-
converts the output to .NET strings. This conversion can cause corruption of
408-
the raw data output.
404+
Before PowerShell 7.4, piping or redirecting output from a native program that
405+
outputs raw byte data converted the output to .NET strings. This conversion
406+
caused corruption of the raw data output.
409407

410-
However, PowerShell 7.4 added the `PSNativeCommandPreserveBytePipe`
411-
experimental feature that preserves byte-stream data when redirecting the
412-
**stdout** stream of a native command to a file or when piping byte-stream data
413-
to the **stdin** stream of a native command.
408+
In PowerShell 7.4 or higher, the `PSNativeCommandPreserveBytePipe` experimental
409+
feature is mainstream. This feature preserves byte-stream data when
410+
redirecting the **stdout** stream of a native command to a file or when piping
411+
byte-stream data to the **stdin** stream of a native command.
414412

415413
For example, using the native command `curl` you can download a binary file and
416414
save it to disk using redirection.

reference/7.5/Microsoft.PowerShell.Core/About/about_Pipelines.md

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
description: Combining commands into pipelines in the PowerShell
33
Locale: en-US
4-
ms.date: 10/02/2025
4+
ms.date: 12/28/2025
55
online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_pipelines?view=powershell-7.5&WT.mc_id=ps-gethelp
66
schema: 2.0.0
77
title: about_Pipelines
@@ -400,17 +400,15 @@ one at a time.
400400
## Using native commands in the pipeline
401401

402402
PowerShell allows you to include native external commands in the pipeline.
403-
However, it's important to note that PowerShell's pipeline is object-oriented
404-
and doesn't support raw byte data.
405403

406-
Piping or redirecting output from a native program that outputs raw byte data
407-
converts the output to .NET strings. This conversion can cause corruption of
408-
the raw data output.
404+
Before PowerShell 7.4, piping or redirecting output from a native program that
405+
outputs raw byte data converted the output to .NET strings. This conversion
406+
caused corruption of the raw data output.
409407

410-
However, PowerShell 7.4 added the `PSNativeCommandPreserveBytePipe`
411-
experimental feature that preserves byte-stream data when redirecting the
412-
**stdout** stream of a native command to a file or when piping byte-stream data
413-
to the **stdin** stream of a native command.
408+
In PowerShell 7.4 or higher, the `PSNativeCommandPreserveBytePipe` experimental
409+
feature is mainstream. This feature preserves byte-stream data when
410+
redirecting the **stdout** stream of a native command to a file or when piping
411+
byte-stream data to the **stdin** stream of a native command.
414412

415413
For example, using the native command `curl` you can download a binary file and
416414
save it to disk using redirection.

reference/7.6/Microsoft.PowerShell.Core/About/about_Pipelines.md

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
description: Combining commands into pipelines in the PowerShell
33
Locale: en-US
4-
ms.date: 10/02/2025
4+
ms.date: 12/28/2025
55
online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_pipelines?view=powershell-7.6&WT.mc_id=ps-gethelp
66
schema: 2.0.0
77
title: about_Pipelines
@@ -400,17 +400,15 @@ one at a time.
400400
## Using native commands in the pipeline
401401

402402
PowerShell allows you to include native external commands in the pipeline.
403-
However, it's important to note that PowerShell's pipeline is object-oriented
404-
and doesn't support raw byte data.
405403

406-
Piping or redirecting output from a native program that outputs raw byte data
407-
converts the output to .NET strings. This conversion can cause corruption of
408-
the raw data output.
404+
Before PowerShell 7.4, piping or redirecting output from a native program that
405+
outputs raw byte data converted the output to .NET strings. This conversion
406+
caused corruption of the raw data output.
409407

410-
However, PowerShell 7.4 added the `PSNativeCommandPreserveBytePipe`
411-
experimental feature that preserves byte-stream data when redirecting the
412-
**stdout** stream of a native command to a file or when piping byte-stream data
413-
to the **stdin** stream of a native command.
408+
In PowerShell 7.4 or higher, the `PSNativeCommandPreserveBytePipe` experimental
409+
feature is mainstream. This feature preserves byte-stream data when
410+
redirecting the **stdout** stream of a native command to a file or when piping
411+
byte-stream data to the **stdin** stream of a native command.
414412

415413
For example, using the native command `curl` you can download a binary file and
416414
save it to disk using redirection.

reference/docs-conceptual/whats-new/What-s-New-in-PowerShell-74.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ For a complete list of changes, see the [CHANGELOG][chg] in the GitHub repositor
2727
- Output from `Test-Connection` now includes more detailed information about TCP connection tests
2828
- .NET introduced changes that affected `Test-Connection`. The cmdlet now returns an error about
2929
the need to use `sudo` on Linux platforms when using a custom buffer size ([#20369][20369])
30-
- Experimental feature [PSNativeCommandPreserveBytePipe][10] is now mainstream. PowerShell now
30+
- Experimental feature [PSNativeCommandPreserveBytePipe][11] is now mainstream. PowerShell now
3131
preserves the byte-stream data when redirecting the **stdout** stream of a native command to a
3232
file or when piping byte-stream data to the stdin stream of a native command.
3333
- 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
232232
[08]: /powershell/module/microsoft.powershell.core/about/about_ansi_terminals
233233
[09]: /powershell/module/microsoft.powershell.core/about/about_preference_variables#psnativecommandargumentpassing
234234
[10]: /powershell/module/microsoft.powershell.core/about/about_preference_variables#psnativecommanduseerroractionpreference
235-
[11]: /powershell/module/microsoft.powershell.core/about/about_redirection?view=powershell-7.4&preserve-view=true#redirecting-output-from-native-commands
235+
[11]: /powershell/module/microsoft.powershell.core/about/about_pipelines#using-native-commands-in-the-pipeline
236236
[12]: /powershell/module/microsoft.powershell.psresourceget
237237
[13]: /powershell/module/psreadline
238238
[14]: https://json-schema.org/understanding-json-schema/reference/schema

0 commit comments

Comments
 (0)