这个问题在这里已经有答案:
PowerShell output is crossing between functions(1个应答)
How do I prevent Powershell from closing after completion of a script?(2个答案)
weird delay of the output of an object when followed by start-sleep (or until script end)(3个答案)
12天前关门了。
在下面的PowerShell脚本中,我遇到了意外的运行和返回顺序问题。
WRITE-ArrayToTable函数用于通过定制对象以类似于表的方式输出数组中的数据。
问题是,当我调用WRITE-ArrayToTable函数时,它直到Read-主机命令返回之后才返回数据。
下面是运行脚本的输出,代码本身在下面。表输出应该在Read-Host调用之前显示,但是会一直保持到调用结束,然后才显示。
我遗漏了什么?如有任何帮助,不胜感激!
产出:
Test: y
Label1 Label2
------ ------
Test1 Test3
Test2 Test4
y
代码:
Function Write-ArrayToTable{
param(
[String[]]$Names,
[Object[][]]$Data
)
for($i = 0;; ++$i){
$Props = [ordered]@{}
for($j = 0; $j -lt $Data.Length; ++$j){
if($i -lt $Data[$j].Length){
$Props.Add($Names[$j], $Data[$j][$i])
}
}
if(!$Props.get_Count()){
break
}
[PSCustomObject]$Props
}
}
$arr1 = @("Test1","Test2")
$arr2 = @("Test3","Test4")
Write-ArrayToTable "Label1","Label2" $arr1,$arr2
Read-Host "Test"
1条答案
按热度按时间carvr3hs1#
而不是像这样丢弃你的物体:
你可以更明确地说:
如果要在一个表中打印所有对象,请在打印之前先收集它们: