gpt4 book ai didi

c# - 如何在 Powershell 中获取输出流?

转载 作者:太空宇宙 更新时间:2023-11-03 10:22:16 27 4
gpt4 key购买 nike

我想知道是否有可能获得引用 Powershell 控制台窗口(在 Powershell 中)的流,假设存在的话。例如,在 C# .NET 中,只需通过 Console.OpenStandardOutput() 即可完成。 Powershell 中是否有等效项?

我想要做的是创建一个 System.IO.BinaryWriter 来写入它而不是使用 Write-Host 或类似的东西,主要用于实验。

我试过 [Console]::OpenStandardOutput(),但这给了我一个空流,让我觉得 Powershell 正在使用一个不同的流。

我正在使用 Powershell V5.0:

Major  Minor  Build  Revision
----- ----- ----- --------
5 0 10240 16384

最佳答案

(注意:PowerShell ISE 不使用控制台,因此写入流也不会产生任何影响。)

尝试从标准输出流中读取不会有任何帮助,它是用来写入内容的。

也不会检查长度,因为标准输出编写器会立即获取任何输入并将其写入屏幕缓冲区。

在基于控制台的主机中试试这个(即 powershell.exe):

$TestBytes = "Test`n".ToCharArray() -as [byte[]]
$OutStream = [console]::OpenStandardOutput()
$OutStream.Write($TestBytes,0,$TestBytes.Length)

您应该看到字符串 Test 被写入屏幕(连同尾随换行符)

关于c# - 如何在 Powershell 中获取输出流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32978470/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com