我已经编写了一个返回自定义对象的cmdlet,我希望尝试在默认情况下对数据进行格式化,而不需要使用| format-table -autosize
。
在本质上,该对象有三个属性:两个字符串和一个int。我知道的其中一个字符串永远不会超过20个字符宽,但另一个字符串可能超过100个字符。
目前,Powershell将短列宽度自动格式化为大约60个字符,而长列将屏幕的其余部分设置为30个字符左右,所以我最终得到的输出看起来默认情况下是一些东西像这样:
FileName LineNum Text
-------- ------- ----
test.txt 20 The cow had a dog ...
rabbit.txt 17 It were a dark an ...
cow.log 3 All work and no p ...
简单地创建对象并将其写为PSObject():
var o = new PSObject();
o.Members.Add(new PSNoteProperty(fieldName, value));
[...]
this.WriteObject(o);
理想情况下,我想删除输出中的巨大差距。我看不到任何在MSDN中查找PSNoteProperty的内容,也没有看到PSObject.Members.Add()表明cmdlet可以执行此操作。
答案 0 :(得分:1)
如果您希望默认情况下这样做,则需要创建自定义对象类型,然后为该类型创建格式xml:
http://msdn.microsoft.com/en-us/library/gg580944(v=vs.85).aspx