0
我試圖做一個自動化腳本,我根據不同的條件調用不同的命令(可執行文件,bats或cmdlet)。這些命令輸出多行日誌和進度。Powershell調用靜態方法內的表達式輸出
我想改善使用類的代碼可重用性。但是,我不能從類方法中調用這些命令的輸出。
例如,使用此代碼:
Class SomeClass
{
static [void] CallSomeExe()
{
& "Path\To\SomeExe.exe" args
}
}
`& "Path\To\SomeExe.exe" args` # Shows command output in shell
`[Utils]::CallSomeExe()` # Doesn't show any output in shell
如果我在直接(& "Path\To\SomeExe.exe" args
)從該exe的輸出將被在所述殼中所示我的主要功能調用命令,但如果我調用靜態方法在主功能([Utils]::CallSomeExe()
)中將不會顯示輸出。
解決方案顯示日誌將捕獲調用結果($out = & "Path\To\SomeExe.exe" args
)並將其返回到主函數。但是,一般來說,這是一個緩慢的過程,並顯示進度信息,我寧願將它進行流式處理,而不是在調用結束時等待所有輸出。
我很困惑,因爲它在一個函數內部工作,但不在類內部。
有沒有辦法讓它顯示輸出時,從靜態方法調用?
我相信這是我提出的解決方案,並表示將爲我的問題做到這一點。因爲如果我調用編譯某些東西並編寫自定義輸出,警告或錯誤的命令,我希望能夠看到輸出。等待5或10分鐘,以查看完整的輸出,而不是針對我的情況的解決方案。 – ccarvalheiro