我想知道是否有人可以为我指出正确的方向,或者与我分享一个正确配置system.io.directoryinfo.format.ps1xml
的工作示例。
阅读about Format.ps1xml和Out-Default的文档文章,我能够弄清楚如何导出默认的“Type”视图格式化程序,修改它们,然后重新导入它们。
但我坚持手动和正确修改此文件
我期待的结果是删除表头以及表头上方打印的目录名
至于属性,应该是:
Basename
Extension
LastAccessTime
Directory
或父文件夹
因此,我的最终目标是这样的:
在一个示例中,我尝试删除整个节点TableHeaders
:
<TableHeaders>
<TableColumnHeader>
<Label>Mode</Label>
<Width>7</Width>
<Alignment>Left</Alignment>
</TableColumnHeader>
<TableColumnHeader>
<Label>LastWriteTime</Label>
<Width>26</Width>
<Alignment>Right</Alignment>
</TableColumnHeader>
<TableColumnHeader>
<Label>Length</Label>
<Width>14</Width>
<Alignment>Right</Alignment>
</TableColumnHeader>
<TableColumnHeader>
<Label>Name</Label>
<Alignment>Left</Alignment>
</TableColumnHeader>
</TableHeaders>
这给了我这样的观点:
ModeWithoutHardLink LastWriteTimeString LengthString NameString
------------------- ------------------- ------------ ----------
d---- 07/02/2023 19:18 Some folder
进一步编辑,然后试图重新导入编辑xml
文件只是给我错误:
Update-FormatData: Errors occurred while loading the format data file:
我花了一整天的时间试图理解这一点,我现在已经到了我的智慧极限。任何帮助都将不胜感激!
1条答案
按热度按时间vltsax251#
您可以使用CustomControl
ExpressionBinding
Tag来获取您正在查看的ps1xml
文件的输出,但是您应该注意,由于您对将对象显示为字符串感兴趣,因此无法使用此方法处理动态填充。格式化文件应如下所示:
然后您可以
Update-FormatData
:那么
Get-ChildItem
更新看起来或多或少就像你想要的:一个简单得多的解决方案是使用
Format-Table -HideTableHeaders
,然后cmdlet可以为您处理动态填充: