powershell - PowerShell - 列出所有文件夹、子文件夹和每个包含的文件(递归)但以格式化方式(树视图)
问题描述
我在 PowerShell 上使用以下命令来创建特定目录中所有文件和子文件夹的列表:
get-childitem -path c:\users\username\desktop\test -recurse | select name
所以假设我的桌面上有一个名为“test”的文件夹,在这个文件夹中我有三个文件和一个子文件夹,它本身包含更多的文件和子文件夹等等,我确实得到了这样的输出:
subfolder 1 of "test"
file 1 in "test"
file 2 in "test"
file 3 in "test"
subfolder a of "subfolder 1"
file 1 in subfolder 1
file 2 in subfolder 1
file 3 in subfolder 1
file 1 in subfolder a
file 2 in subfolder a
file 3 in subfolder a
所以这很好,但我想获得另一种输出,如下所示:
+ c:\users\username\desktop\test
| - file 1 in "test"
| - file 2 in "test"
| - file 3 in "test"
|--+ subfolder 1 of "test"
| | - file 1 in subfolder 1
| | - file 2 in subfolder 1
| | - file 3 in subfolder 1
| |--+ subfolder a of "subfolder 1"
| | | - file 1 in subfolder a
| | | - file 2 in subfolder a
| | | - file 3 in subfolder a
|--+ subfolder 2 of "test"
| | -
| | .
| . .
. .
.
是否有可能(如果是的话 - 那么如何?)得到这样的输出?
我知道当时有一个名为“tree”的dos命令,但由于其局限性,它不能与PowerShell中get-childitem的输出一起使用。PowerShell 中是否有某种等效命令,或者我可以使用 get-childitem 命令及其开关/添加/...来执行此操作吗?
对不起,我的英语不好。并且:对不起,我是 PowerShell 的初学者。
解决方案
您习惯使用 cmd 的旧“树”是 system32 文件夹中的应用程序,而不是一些硬编码的 cmd 功能。
所以你仍然可以像往常一样从 powershell 运行它。
例如
Tree 'C:\Foldername'
Robocopy 和其他一些知名应用程序的工作方式相同。
外部程序中的错误可以在 $LastExitCode 中捕获,而不是通常的 $Error。这些代码的含义因程序而异。
推荐阅读
- ios - 使用本机反应播放 .Flac 或 .Alac 文件,甚至可以在 iPhone 上使用吗?
- sql - Databricks (Azure) SQL 中的 For/Loop/While
- firebase - Firestore 规则拆分自定义令牌并查看它是否匹配
- html - Safari:可滚动 div 中的滚动条颜色错误
- python - 简单的内置函数将数字拆分为 bin
- python - pyserial 和 esp-32s - 当 ser.open esp32 停止运行时
- github - 有没有办法在合并其他分支时自动调用特定分支上的拉取请求?
- excel - Excel VBA(非常慢)如果满足条件,则将整行移至底部
- android-external-storage - 无法从 Android 外部存储中的外部文件位置读取文件
- python - 在 Tkinter 中使按钮更改自己的颜色