2017-03-10 72 views
0

我有一些问题得到了一些信息写入只读主机前控制台。让我抛出一个简单的例子。显示输出读主机

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直接再Read-Host.Get-SqlVersions | Out-String输出。如果我在所有调用Test-Function虽然Get-SqlVersions不再输出到控制台。 Get-SqlVersions进行SQL proc调用,输出是一对数据行。

有没有一种方法,以确保Get-SqlVersions数据显示,高达调用Test-Function什么时候?

+2

将其输出到主机。 '$ GetSQL = Get-SqlVersions |输出字符串;写主机$ GetSQL' – TheMadTechnician

+0

完美工作,端起了作为答案,我会欣然接受。谢谢。 – MrTCS

回答

1

使其明确输出到主机。

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

请您存储在一个变量Get-SqlVersions | Out-String;和显示。我认为这应该工作。

$versions = Get-SqlVersions | Out-String; 
$versions 
+0

这实际上输出到'写Output',这从他的第二个函数调用时会被变量消耗。 – TheMadTechnician

+0

使用写主机随后的变量然后.. :) –