1

我有一组 C# 类,每个类都有一个或两个 ulong 成员。Powershell 默认将这些输出为 10 基数,但我想将它们显示为带有 0x 前缀的十六进制数字。我试图弄清楚如何使用 .ps1xml 文件来做到这一点。

我尝试的第一件事是添加一个 types.ps1xml 文件,该文件添加一个与我要替换的同名的脚本属性。如果我给它一个不同的名称(即添加一个新成员),但如果我使用与现有名称相同的名称,则会使 ISE 崩溃,如下所示:

<Members>
    <ScriptProperty>
        <Name>ForeignId</Name>
        <GetScriptBlock>'0x{0:x16}' -f $this.ForeignId</GetScriptBlock>
    </ScriptProperty>      
</Members>

我认为这是一个无限递归问题。

也许我真正想做的是改变格式!所以我开始考虑制作一个 format.ps1xml 并使用<FormatString>,但现在看来我需要完全定义格式。我必须指定我想要的每个成员,并且我必须为我可能想要的所有视图执行此操作。嗯,这是很多工作..

我只想更改单个成员的格式而不添加新成员。那可能吗?

4

1 回答 1

1

几天前碰到这个。也许有用?

http://poshoholic.com/2008/07/05/essential-powershell-define-default-properties-for-custom-objects/

于 2013-02-12T00:05:09.977 回答