写主机和函数返回值

时间:2015-12-15 11:09:26

标签: powershell

我有一个执行此操作的PowerShell脚本:

$result = powershell -command $((Get-ChildItem $script).Fullname) $arguments

$result | % { Write-Host -ForegroundColor Red $_ }

在启动的脚本中,我想在屏幕上显示一些文字并返回一个值。基本上,我的想法是"如果返回某些内容=>有一个问题,我显示它#34;。但我还想显示一些输出,因为启动的脚本可能需要一些时间来执行,我想显示一些输出。

目前,已启动的脚本是这样的:

Param(...)

Write-Host "Some status..."

if (SOMETHING_IN_ERROR)
{
  return "There is an error";
}

它正在工作,除了"输出消息"和"错误"在启动的脚本完成后显示,而不是在执行期间显示。我有点理解为什么,但我找不到能够返回错误并显示一些输出消息的好方法。

1 个答案:

答案 0 :(得分:0)

使用呼叫运算符(Help -> Show log in explorer):

c:\Users\Auyshman\.IntelliJIdea15\system\log\idea.log

在另一个PowerShell进程中运行该脚本将合并该进程'主机输出及其成功输出流(vulgo STDOUT),因此您在处理&时获得整个输出。调用操作符在同一环境中运行脚本,因此在调用脚本运行时获取主机输出,在处理$result = & $script $arguments $result | % { Write-Host -ForegroundColor Red $_ } 时获得成功输出。