You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确配置system.io.directoryinfo.format.ps1xml自定义显示格式

自定义System.IO.DirectoryInfo格式化配置示例

步骤1:导出默认格式文件

先导出默认的System.IO.DirectoryInfo格式模板作为修改基础:

Export-FormatData -TypeName System.IO.DirectoryInfo -Path .\CustomDirectoryInfo.Format.ps1xml

步骤2:修改后的完整配置文件

替换导出文件的内容为以下代码,满足“移除目录名称分组、隐藏表头、指定显示属性”的需求:

<?xml version="1.0" encoding="utf-8"?>
<Configuration>
  <ViewDefinitions>
    <View>
      <Name>CustomDirectoryInfoView</Name>
      <ViewSelectedBy>
        <TypeName>System.IO.DirectoryInfo</TypeName>
        <!-- 若需同时应用到文件,保留下方行;否则删除 -->
        <TypeName>System.IO.FileInfo</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <!-- 保留表头节点但设空标签,避免加载报错同时隐藏表头 -->
        <TableHeaders>
          <TableColumnHeader>
            <Label></Label>
            <Width>20</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label></Label>
            <Width>10</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label></Label>
            <Width>25</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label></Label>
            <Width>30</Width>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Basename</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Extension</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>LastAccessTime</PropertyName>
                <FormatString>{0:yyyy-MM-dd HH:mm:ss}</FormatString>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>$_.DirectoryName</ScriptBlock>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
  </ViewDefinitions>
</Configuration>

步骤3:导入自定义格式文件

执行以下命令加载修改后的配置:

Update-FormatData -PrependPath .\CustomDirectoryInfo.Format.ps1xml

关键修改说明

  1. 移除目录名称分组:删除默认配置中的<GroupBy>节点,彻底取消表头上方的目录名称显示。
  2. 避免加载报错:PowerShell的TableControl要求必须存在<TableHeaders>节点,因此保留该节点但将所有表头标签设为空,既满足结构要求,又视觉上隐藏表头。
  3. 指定显示属性:
    • 直接使用Basename、Extension、LastAccessTime属性
    • 用$_.DirectoryName脚本块输出父文件夹路径,比Directory属性更直观(Directory会输出DirectoryInfo对象,此处直接显示路径)
  4. 列宽调整:通过<Width>节点控制各列宽度,避免内容挤压。

常见报错排查

之前出现的Update-FormatData加载错误,通常是以下原因:

  • <TableHeaders>列数与<TableRowEntries>列数不匹配
  • 缺少必要的XML节点(如TableControl必须包含TableHeaders和TableRowEntries)
  • XML语法错误(标签未闭合、编码问题等)

内容的提问来源于stack exchange,提问作者gaberiel__

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 23:20:38