如何在Powershell中获得输出流?
本文关键字:输出流 Powershell | 更新日期: 2023-09-27 18:16:14
我想知道是否有可能获得指向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
被写入屏幕(连同一个尾随的换行符)