首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法显示PSObject

无法显示PSObject
EN

Stack Overflow用户
提问于 2016-09-20 12:09:18
回答 2查看 454关注 0票数 1

我正在尝试显示脚本在PSObject中生成的一些数据,这样我就可以导出到CSV,但是唯一显示的对象是我先添加到数组中的对象。

代码语言:javascript
复制
$pass=@("1","2","3")
$fail=@("4")
$obj=@()
$pass | % {
    $obj+=New-Object PSObject -Property @{Pass=$_}
}
$fail | % {
    $obj+=New-Object PSObject -Property @{Fail=$_}
}
$obj

我也尝试过这样做,但在表中显示了一个空行,其中的值不在该列中,我不想这样做:

代码语言:javascript
复制
$pass=@("1","2","3")
$fail=@("4")
$obj=@()
$pass | % {
    $obj+=New-Object PSObject -Property @{Pass=$_;Fail=""}
}
$fail | % {
    $obj+=New-Object PSObject -Property @{Pass="";Fail=$_}
}
$obj

我想要的结果:

代码语言:javascript
复制
Pass    Fail
----    ----
1       4
2
3

我正在使用Powershell V2。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-20 12:15:51

正如您自己了解的那样,PowerShell只输出数组中第一个项的属性。它的并不是设计来打印您所期望的输出的方式。

作为解决办法,您可以使用for循环“构建”所需的输出:

代码语言:javascript
复制
$pass=@("1","2","3")
$fail=@("4")
$obj=@()

for ($i = 0; $i -lt $pass.Count; $i++)
{
    if ($fail.Count -gt $i)
    {
        $currentFail = $fail[$i]
    }
    else
    {
        $currentFail = ""
    }

    $obj+=New-Object PSObject -Property @{Fail=$currentFail;Pass=$pass[$i];}
}
$obj | select Pass, Fail

输出:

代码语言:javascript
复制
Pass Fail
---- ----
1    4   
2        
3     
票数 0
EN

Stack Overflow用户

发布于 2016-09-20 12:26:30

另一个答案是正确的--你使用的对象不对。尽管如此,这里有一个函数可以帮助您错误地使用它们!

代码语言:javascript
复制
Function New-BadObjectfromArray($array1,$array2,$array1name,$array2name){
    if ($array1.count -ge $array2.count){$iteratorCount = $array1.count}
    else {$iteratorCount = $array2.count}
    $obj = @()
    $iteration=0
    while ($iteration -le $iteratorCount){
        New-Object PSObject -Property @{
            $array1name=$array1[$iteration]
            $array2name=$array2[$iteration]
        }
        $iteration += 1
    }
    $obj
}

$pass=@("1","2","3")
$fail=@("4")

New-BadObjectfromArray -array1 $fail -array2 $pass -array1name "Fail" -array2name "Pass"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39593716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档