速查 · 23 11 月, 2024 0

用PowerShell格式化输出好看的文件目录列表

前言

接了个任务,要求从测试环境中获取D盘下某个文件夹中的目录和目录中的文件列表,供组内成员挑选哪些要留哪些要删。作为重度强迫症,自然是想让文件列表长成下面这样:

> 目录1
  |- 子目录1-1
  |- 子目录1-2
  ...
  |- 文件1-1.xxx
  |- 文件1-2.xxx
  ...
======
> 目录2
  |- 子目录2-1
  |- 子目录2-2
  ...
  |- 文件2-1.xxx
  |- 文件2-2.xxx
  ...
======
...

然而测试环境中似乎除了Windows自带的软件外没有安装任何其他软件,从外面往里拷Python之类的第三方软件也不被允许。该怎么办呢?

怎么做

俗话说,遇事不决上PowerShell。只需要在PowerShell命令行中cd到需要的目录,执行以下命令即可实现需求:

Get-ChildItem -Directory | ForEach-Object {
    Write-Output "> $($_.Name)"
    Get-ChildItem -Directory -Path $_.FullName | ForEach-Object {
        Write-Output "  |- $($_.Name)"
    }
    Get-ChildItem -File -Path $_.FullName | ForEach-Object {
        Write-Output "  |- $($_.Name)"
    }
    Write-Output "======"
}