Arrays 从数组中删除空行
我尝试删除数组中的空行或值,例如,如果$DBLevel的输出为空,则应删除孔行。有没有一个简单的方法可以做到这一点 谢谢Arrays 从数组中删除空行,arrays,powershell,Arrays,Powershell,我尝试删除数组中的空行或值,例如,如果$DBLevel的输出为空,则应删除孔行。有没有一个简单的方法可以做到这一点 谢谢 $vmname= "srvsql009" $DBType = "sql" $DBLevel = "" $style = "blue" $myCol = @() $x = "" | Select 'Name','DB-Type','DB-Level','Style' $
$vmname= "srvsql009"
$DBType = "sql"
$DBLevel = ""
$style = "blue"
$myCol = @()
$x = "" | Select 'Name','DB-Type','DB-Level','Style'
$x.Name = $vmname
$x.'DB-Type' = $DBType
$x.'DB-Level' = $DBLevel
$x.'Style' = $style
$myCol += $x
$myCol
IsPublic IsSerial名称基类型
True Object[]System.Array假设在
$mycl
变量中有这样的结果
PS> $myCol
Name DB-Type DB-Level Style
---- ------- -------- -----
srvsql009 sql blue
SQLSRV200 cosmos ALPHA RED
可以使用Where Object
命令筛选数组中的项,如下所示:
PS> $myCol | Where DB-Level -ne ""
Name DB-Type DB-Level Style
---- ------- -------- -----
SQLSRV200 cosmos ALPHA RED
PowerShell比较运算符与大多数其他编程语言不同,这意味着您不能使用
==
来比较equals,或者继续我的评论
从简单数组(Object[]
)中删除元素既耗时又占用内存,因为数组的长度是固定的,删除元素时,需要在内存中重建整个数组
如果您有一个需要能够从中删除项目的集合,最好使用[System.Collections.Generic.List[object]]
示例集合(遵循您的语法)
$list
现在包含
Name DB-Type DB-Level Style
---- ------- -------- -----
srvsql009 sql 120 blue
srvsql010 sql 121 blue
srvsql011 sql 122 blue
srvsql012 sql 123 blue
srvsql013 sql 124 blue
现在,如果要删除此列表中的一项,可以使用其索引:
$list.RemoveAt(2) # removes item 'srvsql011'
结果:
Name DB-Type DB-Level Style
---- ------- -------- -----
srvsql009 sql 120 blue
srvsql010 sql 121 blue
srvsql012 sql blue
srvsql013 sql 124 blue
Name DB-Type DB-Level Style
---- ------- -------- -----
srvsql009 sql 120 blue
srvsql010 sql 121 blue
srvsql011 sql 122 blue
srvsql013 sql 124 blue
或通过确定要删除的对象来删除:
$x = $list | Where-Object { !$_.'DB-Level' }
$list.Remove($x)
结果:
Name DB-Type DB-Level Style
---- ------- -------- -----
srvsql009 sql 120 blue
srvsql010 sql 121 blue
srvsql012 sql blue
srvsql013 sql 124 blue
Name DB-Type DB-Level Style
---- ------- -------- -----
srvsql009 sql 120 blue
srvsql010 sql 121 blue
srvsql011 sql 122 blue
srvsql013 sql 124 blue
您的代码中没有$ITLevel
。。如果您想要一个稍后决定从中删除元素的集合,我建议使用,或者如果不满足条件,就不要添加到数组中。嘿,抱歉,复制和粘贴失败。现在代码是正确的。这是工作流程的一部分,有时可能会出现变量为空的情况,如本例所示。我们没有收到您的来信。。给出的答案解决了你的问题吗?如果是,请点击✓ 左边的图标。这将帮助其他有类似问题的人更容易找到它,并有助于激励其他人回答你将来可能遇到的任何问题。嗨,谢谢。我知道,但它可能是,例如,在下一次运行中,“Style”为空,因此这将不起作用。在阵列中,如果这样做更容易,则不会有多台服务器