本文介绍了如何从输出中删除花括号/花括号-PowerShell的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何从输出中删除大括号/大括号
$t = [ADSI]"WinNT://$env:COMPUTERNAME"
$t1 = $adsi.PSBase.Children |where {$_.SchemaClassName -eq 'user'}
$t1 |select Name,Fullname
名称全名
{Anon}{Anon Xen1}
{Anon1}{Anon1 Xen2}
{Anon2}{Anon2 Xen3}
推荐答案
之所以有大括号,首先是因为名称和全名属性是集合,而不是字符串。具体地说,它们是System.DirectoryServices.PropertyValueCollection对象。
$t = [adsi]"WinNT://$env:COMPUTERNAME"
$t1 = $t.PSBase.Children |where {$_.SchemaClassName -eq 'user'}
$t1[0]|get-member
截取的额外属性
TypeName: System.DirectoryServices.DirectoryEntry
Name MemberType Definition
---- ---------- ----------
FullName Property System.DirectoryServices.PropertyValueCollection FullName {get;set;}
Name Property System.DirectoryServices.PropertyValueCollection Name {get;set;}
然后,您可以创建一个自定义对象,并与前面的答案类似地为其赋值,但我会遍历集合,而不是任意获取第一个成员。
$t = [adsi]"WinNT://$env:COMPUTERNAME"
$t1 = $t.PSBase.Children |where {$_.SchemaClassName -eq 'user'}
$t1 | ForEach-Object{
$temp = New-Object PSObject -Property @{
"Name" = $_.Name | ForEach-Object {$_}
"FullName" = $_.FullName | ForEach-Object {$_}
}
$temp
}
Name FullName
---- --------
Administrator
Guest
如果您想将其缩短为一个班轮,您可以使用以下选项:
([adsi]"WinNT://$env:COMPUTERNAME").PSBase.Children|?{$_.SchemaClassName -eq 'user'}|%{$temp=""|Select Name,FullName;$temp.Name=$_.Name|%{$_};$temp.FullName=$_.FullName|%{$_};$temp}
Name FullName
---- --------
Administrator
Guest
这篇关于如何从输出中删除花括号/花括号-PowerShell的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!