簡體   English   中英

Powershell:無法將Invoke-Expression的輸出存儲在變量中

[英]Powershell: Can't store the output from Invoke-Expression in a variable

我有一個很長的Powershell腳本,我想從另一個腳本中調用。 目前,我正在使用Invoke-Expression進行此調用,並且效果很好:

    $argumentList = @()
    $argumentList += ("-oldaccount", ($oldDomain + "\" + $oldUname), "-newaccount", ($newDomain + "\" + $newUname))

    $output = Invoke-Expression "C:\path\to\script.ps1 $argumentList"

我正在調用的腳本使用Write-Host將其輸出行寫入屏幕。 我想在調用者腳本中捕獲此輸出,以便可以將其放在日志文件中,並且理想情況下,我希望在不修改正在調用的腳本的情況下執行此操作。 我已經嘗試了如何將Invoke-Expression的輸出傳遞給字符串的建議? 運氣不好-當我在ISE中運行代碼時,我只是將輸出輸出到屏幕,並且變量保持為空。 因為我要調用另一個Powershell腳本而不是可執行文件,我是否需要做其他事情?

寫主機將不適用於您。 嘗試在內部腳本中返回一個值,例如:

InnerScript.ps1可以是:

return "Test"

然后OuterScript.ps1應該是:

$output = Invoke-Expression ".\InnerScript.ps1"

Write-Host($ output)應該顯示:

Test

將此示例調整為適合您的特定方案。 希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM