我試圖將來自Invoke-expression
的輸出存儲到變量以及屏幕上。我有PS日誌記錄,它會自動將一切記錄爲Write-Host
在一個文件中。現在,我使用Invoke-Expression
這似乎是打印在屏幕上或一個變量的輸出,我既需要在屏幕和變量上調用表達式輸出
所有我曾嘗試是:
$var = "C:\ER\work\Canny.exe -Init ER\ER2 Get-ip"
$val = Invoke-Expression $var
這不會在屏幕上打印任何東西,所以我我無法知道運行時是否有任何問題。我後來做$val
該記錄,但一個Write-Host
它有時來不及知道發生了什麼 如果我使用:
Invoke-Expression $var
沒有被記錄(明顯),但有控制檯輸出,如果我想看到後有時候爲了記錄發生了什麼,我沒辦法調查。 我也曾嘗試:
Invoke-Expression $var -OutVariable out
OR
Invoke-Expression $var -OutVariable $out
這是在這裏沒有用的。我還創建了一個腳本塊,並與
Invoke-Command
嘗試,但再次沒有用的我只需要它打印在屏幕上,以及一個變量輸出。
這將啓動我的埃克失敗: – Akshay
調用表達$ expr的;效果很好,Invoke-Expression $ var | Tee-Object -Variable xyz; EXE給出System.NullReferenceException:對象引用未設置爲對象的實例 – Akshay
我看到你找到了解決方案,但我猜測'(Invoke-Expression $ var)| Tee-Object -Var xyz'可能會工作,但是這會讓可執行文件在它試圖將信息傳遞給管道之前完成其輸出。 – TheMadTechnician