在powershell中使用破折号的标题

时间:2017-12-05 19:42:45

标签: powershell

有没有办法摆脱标题名称和短划线?例如,而不是

Display Name
-------------
Test, Directory

它只显示名字和姓氏测试,目录

这就是我的写输出中的内容:

write-output $DataAdapter.Fill($Dataset) | Out-null 

我认为out-null会照顾它,但它没有。

请有人帮助我。

谢谢。

2 个答案:

答案 0 :(得分:0)

在此特定示例中,您要执行的操作是使用Select-ObjectExpandProperty参数,指定要显示的属性。

这方面的一个例子是(没有扩展):

[1] PS G:\> Get-ADUser -Filter * | Select Name

Name         
----         
Administrator
Joe Bloggs
...

随着扩展:

[2] PS G:\> Get-ADUser -Filter * | Select-Object -ExpandProperty Name
Administrator
Joe Bloggs
...

我想这里真正的跟进问题是“为什么?”

通过这样做,您将剥离基于对象的范例,使PowerShell功能强大。现在只是给你一个字符串数组。

答案 1 :(得分:0)

PowerShell不会将数据视为文本;数据是对象。对象具有属性,当您将对象发送到输出管道时,默认处理器将处理到文本的转换。

此转换尝试尽可能保留有关对象的信息。这意味着,例如,使用属性的名称标记对象属性的值。

$DataAdapter.Fill($Dataset)指定的对象有一个名为Display Name的属性。默认输出处理器Write-Output会尝试通过使用属性名称Display Name标记数据来保留信息,以便您看到标题。

要消除这种情况,您需要输出的不是整个对象,而是输出您感兴趣的特定属性的值:

Write-Output ($DataAdapter.Fill($Dataset)).'Display Name'

请注意 - 您可以控制它 - 将空格作为属性名称的一部分通常被认为是不好的做法。