1

それぞれにulongメンバーが1つか2つあるC#クラスのセットがあります。Powershellは、これらをデフォルトで10ベースの数値として出力しますが、プレフィックスが0xの16進数として表示したいと思います。私は.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 に答える