我引用了一个包含API所需的C ++类的DLL文件。据我所知,该类的默认构造函数将一段文本管道传输到我无法触及的流中。我一次重定向一个输出流以尝试隔离它,并且在没有成功影响文本的情况下达到6。它的记录数据,在这种情况下我并不关心它;我希望它能消失。
构造函数不返回文本(对象像往常一样成功返回),它只是在构造函数执行期间发送到控制台。我认为这就是Out-Null和>的原因。 $ null什么都不做。
当我在ISE中运行相同的程序时,控制台中的文字不!这是一个有说服力的线索,我一直在寻找环境差异 - 但是存在大量的环境差异。我应该调查哪些?
答案 0 :(得分:1)
我认为重要的区别是PowerShell.exe是一个控制台子系统应用程序。任何类型的输出到stdout(printf,cout<<' foo'等)都会出现在控制台中。另一方面,ISE是一个Windows子系统应用程序 - 没有控制台。您在ISE中看到的控制台窗格仅仅是另一个工具窗口,其外观和行为就像控制台一样,就像Visual Studio中的NuGet Package Manager控制台一样。