我有一个相当长的 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 脚本而不是可执行文件?