我在读取主机之前遇到一些问题要写入控制台时遇到了一些问题。让我抛出一个简化的例子。
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-Function
,Get-SqlVersions
不再输出到控制台。 Get-SqlVersions
进行SQL proc调用,输出是几个Datarows。
有没有办法确保在调用Get-SqlVersions
时显示Test-Function
数据?
答案 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似乎收集并准备了要显示的东西。主机外就是这样做的。