我創建了一個基本上收集信息並通過Start-Job將該信息發送到外部PS腳本的PowerShell界面。我有一個計時器,每秒都會觸發接收作業,並使用我創建的作業中的STDOUT更新輸出框。記錄Powershell作業結果
外部PS腳本:
此腳本具有許多功能(其利用許多小命令),並且將打印通過寫詳盡以一個日誌消息。問題是,有時在這些函數中我會打印消息和/或返回一個值。我們都知道,函數返回的任何東西都放在標準輸出中。因此,只要函數返回一個值,該值就會打印到輸出Rich Textbox控件中。我不想那樣。另外,如果我使用的詳細,並沒有被打印在控制(不過,它被打印到控制檯)
我想什麼消息:唯一 打印郵件到我的富文本框和我的日誌文件,在流中沒有函數返回值(除非它們是消息本身的一部分)。
注意:我重寫從VB.NET應用程序這個應用程序,以一個PowerShell工作室應用......我注意到以前這被正在通過流STD輸出到文本框中完成,採用了類似外部PowerShell腳本 - 除了腳本使用WRITE-HOST。這對我來說沒有意義,因爲寫主機甚至不應該放入流中。
另類視角:
我不得不讓工作添加到日誌本身,然後具有UI運行獲取內容-tail 1 ...這會工作的工作示例,除了一些我的信息將被印在不止一行上,並且不會按預期拉動所有內容。如果有人有辦法讓我在任何時候都能在日誌中獲得任意數量的新行,請告訴我。這可能比我目前的方法更容易。
Out-Null或將函數結果賦值給變量做我現在需要的東西。謝謝。當我需要一個值在流中的時候,我試圖去適應這種情況,但是我想我可以用這種方式來處理它。 – Zephyrus1898
聽起來不錯,一般來說你希望你的函數是非常原子的,所以只需要返回你真正想要成爲輸出流的一部分的值,在你想要的詳細警告或錯誤流中你想要的任何東西。 –