有没有办法摆脱标题名称和短划线?例如,而不是
Display Name
-------------
Test, Directory
它只显示名字和姓氏测试,目录
这就是我的写输出中的内容:
write-output $DataAdapter.Fill($Dataset) | Out-null
我认为out-null
会照顾它,但它没有。
请有人帮助我。
谢谢。
答案 0 :(得分:0)
在此特定示例中,您要执行的操作是使用Select-Object
和ExpandProperty
参数,指定要显示的属性。
这方面的一个例子是(没有扩展):
[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'
请注意 - 您可以控制它 - 将空格作为属性名称的一部分通常被认为是不好的做法。