在Read-Host之前显示输出

时间:2017-03-10 00:40:30

标签: powershell

我在读取主机之前遇到一些问题要写入控制台时遇到了一些问题。让我抛出一个简化的例子。

Function Add-Build {
[CmdletBinding()]
Param ([Parameter(Mandatory=$True,Position=1)][String]$Build
      ,[Parameter(Mandatory=$False,Position=2)][System.Nullable``1[[System.Int32]]]$VersionID
      ,[Parameter(Mandatory=$False,Position=3)][String]$BuildDescription
)

    Write-Host -BackgroundColor DarkYellow "Adding SQL Build $($Build)"


IF ($VersionID -eq $null)
{
    Get-SqlVersions | Out-String


    $VersionID = Read-Host -Prompt "SELECT Version (Enter To Skip)" | % { IF ($_ -eq '') {$null} ELSE {$_}}
    }
}

FUNCTION Test-Function {

   $BuildID = (Get-BuildID -Build "11.0.3156.0").ToString()
}

如果我直接致电Add-Build,那么Get-SqlVersions | Out-String之前的Read-Host.输出如果我呼叫Test-FunctionGet-SqlVersions不再输出到控制台。 Get-SqlVersions进行SQL proc调用,输出是几个Datarows。

有没有办法确保在调用Get-SqlVersions时显示Test-Function数据?

3 个答案:

答案 0 :(得分:2)

将其显式输出到主机。

$GetSQL = Get-SqlVersions | Out-String
Write-Host $GetSQL

答案 1 :(得分:0)

您可以将array_key_exists()存储在变量中并显示该变量。我认为这应该有效。

Get-SqlVersions | Out-String;

答案 2 :(得分:0)

我知道这很老,但是我偶然发现了它,不禁做出了贡献。

问题在这里:

Get-SqlVersions |外串

将其更改为此:

Get-SqlVersions |主机外

我快速浏览了一下,Out-String似乎收集并准备了要显示的东西。主机外就是这样做的。