[英]How Can I Get the Output Stream in Powershell?
我想知道是否有可能获得引用 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
被写入屏幕(以及尾随换行符)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.