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

如何修改gci默认输出,替换LastWriteTime为CreationTime并保留名称列着色?

解决Get-ChildItem替换列后保留Name着色与原对象的问题

要同时实现替换LastWriteTime为CreationTime、保留Name列默认着色,且不丢失FileInfo/DirectoryInfo对象(支持后续管道操作),最可靠的方法是临时修改当前PowerShell会话的格式定义——这只会改变显示逻辑,完全不影响输出的原始对象。

操作步骤:

  1. 导出默认的文件系统对象格式
    执行命令导出系统默认的FileInfo/DirectoryInfo格式定义到临时文件:

    Get-FormatData -TypeName System.IO.FileInfo,System.IO.DirectoryInfo | Export-FormatData -Path "$env:TEMP\CustomFileSystem.Format.ps1xml"
    
  2. 修改格式文件中的列定义
    打开生成的CustomFileSystem.Format.ps1xml文件,找到以下两处内容并修改:

    • 找到<TableColumnHeader>下的<Label>LastWriteTime</Label>,替换为<Label>CreationTime</Label>
    • 找到对应的<TableColumnItem>下的<PropertyName>LastWriteTime</PropertyName>,替换为<PropertyName>CreationTime</PropertyName>
  3. 加载修改后的格式
    执行命令让PowerShell优先使用自定义格式:

    Update-FormatData -PrependPath "$env:TEMP\CustomFileSystem.Format.ps1xml"
    

效果验证

直接运行gci(或Get-ChildItem),你会看到输出列已经替换为CreationTime,Name列的默认着色(文件夹蓝色、文件按类型着色)完全保留,且输出的仍然是原始的FileInfo/DirectoryInfo对象——后续可以直接管道到Copy-Item、Remove-Item等命令,完全不影响功能。

注意事项

  • 这个修改仅对当前PowerShell会话有效,关闭窗口后自动失效,不会影响全局配置。
  • 如果需要永久生效,可以将修改后的.ps1xml文件放到PowerShell的格式目录(比如$PSHOME\Modules\YourModule\Format),并在配置文件中加载。

内容的提问来源于stack exchange,提问作者A.King

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 19:39:58