受够了Windows自带的tree,我干脆自己写了一个版本(类Linux,支持深度、图标、彩色输出)

74 阅读3分钟

未标题-1.png

我一直觉得 Windows 自带的 tree 命令非常可惜。

功能半残、输出不友好、不能限制深度、没有 Unicode、没有颜色、没有图标…… 真正想用它来查看目录结构的时候,感觉自己回到了上个世纪。

既然如此,我干脆就自己写了一个。

于是就有了 TreeView — 现代化的 Windows PowerShell 目录树工具。 这篇文章就来分享一下我为什么要做它,它能解决什么痛点,以及你怎么用它最快上手。


💡 我为什么要做 TreeView?

讲真,我做这个工具的起因非常简单:

  • 我经常需要给别人(包括AI)展示项目结构
  • Windows 的 tree 不能限制深度(Linux 有 -L
  • 不能显示图标,不直观
  • 中文文件名会错位
  • PowerShell 和 Windows Terminal 这么现代化了,目录树却还停留在 90 年代
  • 市面上竟然没有一个好用的替代品(我搜了好几圈,只能找到npm包)

而我日常也喜欢做小工具,越写越觉得:

“不如我自己做一个,可能别人也会用吧?”

所以 TreeView 就这么诞生了。


🚀 TreeView 能做什么?(最核心的亮点)

TreeView 的目标很明确:

做一个比 Windows 自带的 tree 好用 10 倍的工具。

为了这个目标,它实现了几个重要能力:


✨ 1. 支持深度控制(-Depth / -L

Windows 原生 tree 死活做不到这一点。

例如:

treeview -L 2

完全对齐 Linux 的 tree -L.


✨ 2. 支持文件图标(-Icon

非常直观:

  • 📁 文件夹
  • 📄 普通文件
  • 🖼️ 图片
  • 🎬 视频
  • 🧱 二进制
  • 等等……

项目结构一眼就能看出类型。


✨ 3. 使用 Unicode 树形字符

养眼的:

├──
└──
│

再也不是 Windows 的那种 ASCII 方框了。


✨ 4. 支持彩色输出(-C

漂亮而且一眼区分文件夹 / 文件。


✨ 5. 支持完整路径、过滤目录、显示隐藏文件…

能让你写 README、截目录树图的时候不再痛苦。


✨ 6. 支持 Windows PowerShell 5.1 和 PowerShell 7

不挑环境,不挑机器。


📦 如何安装?

最推荐使用 PowerShell Gallery:

Install-Module -Name TreeView -Scope CurrentUser -Force

验证安装:

Get-Module -ListAvailable TreeView | Select-Object Name, Version, Path

安装后可直接使用:

treeview

如果控制台报:

treeview :在模块“TreeView"中找到“treeview”命令,但无法加载该模块。有关详细信息,请运行“Import-Module Treeview”

则需要引入一下模块:

Import-Module Treeview

如遇脚本被阻止,请运行下列指令在当前用户通过安全策略:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

📘 常用用法示例

显示三层:

treeview -L 3

显示图标:

treeview -Icon

显示完整路径:

treeview -f

只看目录:

treeview -d

显示隐藏文件:

treeview -a

启用彩色输出:

treeview -C

📊 输出示例

📁 Project
├── 📁 src
│   ├── 📄 main.js
│   └── 🖼️ logo.png
├── 📁 docs
└── 🎬 demo.mp4

🛠 我写 TreeView 的一些心得

写完这个工具,我最大的感受是:

PowerShell 的生态确实需要更多现代化的小工具。

Windows Terminal 已经很现代了,但工具还是 20 年前的那批。 TreeView 的作用有点像“补一个本来就应该有的能力”。

无论是写文档、做演示,还是查看项目结构,它都比 tree 灵活。


🔚 最后

实现的过程我也记录在我的另一篇博客里了:

如何发布powershell命令到gallery(超详细教程,一文带你跑通全流程)介绍了如何编写一个自己的powersh - 掘金

如果你觉得 TreeView 对你有帮助, 欢迎 GitHub 点个 ⭐ 支持一下:

Alpaca10086zyys/TreeView-PS

我也会持续更新,加入更多你们需要的能力。 欢迎提 Issue、PR,或者告诉我你希望 TreeView 还能做什么。