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

PowerShell如何递归显示目录及子目录(排除指定根目录)仅展示目录名

PowerShell递归显示目录并排除指定目录的解决方案

原脚本的核心问题是未限定仅获取目录,且使用了针对文件的-include "*.*"参数,导致输出包含所有文件。以下是修正后的方案:

修正后的脚本

Get-ChildItem -Path "C:\" -Directory -Recurse |  
  Where-Object { $_.FullName -notlike "C:\Pictures\*" } | 
  ForEach-Object { Add-Content -Path "C:\result.txt" -Value $_.FullName }

关键说明

  • -Directory:直接指定只返回目录对象,彻底避免输出文件,这是解决原问题的核心调整
  • 保留Where-Object过滤逻辑:-Exclude参数仅对当前路径下的顶级项生效,递归遍历子目录时无法准确排除指定目录的所有子项,用$_.FullName -notlike可以精准过滤掉C:\Pictures及其所有子目录
  • 如果需要排除多个根目录下的目录,可以扩展过滤条件:
    # 排除多个目录示例
    Get-ChildItem -Path "C:\" -Directory -Recurse |  
      Where-Object { $_.FullName -notlike "C:\Pictures\*" -and $_.FullName -notlike "C:\Videos\*" } | 
      ForEach-Object { Add-Content -Path "C:\result.txt" -Value $_.FullName }
    
  • 也可使用正则表达式简化多目录排除:
    Get-ChildItem -Path "C:\" -Directory -Recurse |  
      Where-Object { $_.FullName -notmatch "^C:\\(Pictures|Videos)\\.*" } | 
      ForEach-Object { Add-Content -Path "C:\result.txt" -Value $_.FullName }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 12:50:07