[英]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.