前回のエントリに対する補足を軽く書いておきます。
format.ps1xmlのDefaultSettingsタグ
PowerShell既定のフォーマット設定に介入するには、適当なforamt.ps1xml
ファイルを作ってPropertyCountForTable
タグに更新したい値を設定すればよいと説明しました。
設定例)
<?xml version="1.0" encoding="utf-8" ?> <Configuration> <DefaultSettings> <PropertyCountForTable>2</PropertyCountForTable> </DefaultSettings> </Configuration>
このタグの親であるDefaultSettings
ですが、これはPowrerShellのフォーマット設定の既定値に関するタグとなりPropertyCountForTable
以外にも複数のタグがあることが確認できました。
ただし、どのタグも通常は一切使われていないため何のためのものか・設定するとどういった効果があるかは正直謎です...
謎なのですが、せっかくなので見つけたタグについてわかる範囲で補足しておきます。
ShowErrorタグ および DisplayErrorタグ
どちらのタグもBool型の値を取り、既定値はFalse
でした。
ShowErrorタグの説明*1には、
if true, display error messages
DisplayErrorタグの説明には
if true, display an error string in the formatted display (e.g. cell in a table)
と記載されておりフォーマットの内部処理でエラーが発生した際にエラー情報を出すか否かを制御するのに使われる様です。
恐らくデバッグ用の項目でしょう。
EnumerableExpansions -> EnumerableExpansion -> Expandタグ
階層が深いのですがExpand
タグ以外のタグは無い様です。
このタグはMicrosoft.PowerShell.Commands.Internal.Format.EnumerableExpansion
列挙型となり以下の様に定義されています。
internal enum EnumerableExpansion { /// <summary> /// process core only, ignore IEumerable /// </summary> CoreOnly, /// <summary> /// process IEnumerable, ignore core /// </summary> EnumOnly, /// <summary> /// process both core and IEnumerable, core first /// </summary> Both, }
既定値はEnumOnly
です。
名前からして配列などのオブジェクトの展開方法に関わっている様ですが、具体的に何をしているのかさっぱりわかりませんでした...
今後わかることがあれば追記します。
設定例
最後にこれらのタグの設定例を記載しておきます。
<?xml version="1.0" encoding="utf-8" ?> <Configuration> <DefaultSettings> <ShowError>False</ShowError> <DisplayError>False</DisplayError> <EnumerableExpansions> <EnumerableExpansion> <Expand>EnumOnly</Expand> </EnumerableExpansion> </EnumerableExpansions> </DefaultSettings> </Configuration>
*1:正確には対となるオブジェクトのプロパティのコメント