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

如何用Get-Item或Get-ChildItem获取指定目录及其所有子目录?

如何用PowerShell获取指定目录及其所有子目录?

要获取k:\IT\abc目录本身及其所有子目录,直接结合Get-Item和Get-ChildItem就能实现需求:

方法一:合并两个命令的结果(推荐新手使用,逻辑清晰)

$root = "k:\IT\abc"
# 先获取abc目录本身,再获取其所有子目录,合并结果
$targetDirs = @(Get-Item $root -Directory) + @(Get-ChildItem $root -Directory -Recurse)
  • Get-Item $root -Directory:单独获取abc目录本身
  • Get-ChildItem $root -Directory -Recurse:获取abc下所有层级的子目录
  • 用@()包裹确保结果为数组,再通过+合并两个数组,就能得到包含abc本身和所有子目录的完整列表

方法二:单命令简化写法(PowerShell 5.1及以上版本支持)

$root = "k:\IT\abc"
Get-ChildItem -Path $root -Directory -Recurse -Include "$root", "*"

这个写法通过-Include参数同时指定根目录和所有子目录匹配规则,也能得到同样的结果。

为什么你之前的写法不生效?

  • 第一次的代码Get-ChildItem $root -Directory -Recurse:-Recurse参数只会遍历返回目标路径下的子目录,不会包含目标路径本身,因此拿不到abc目录。
  • 第二次从k:\IT递归:会遍历IT下的所有子目录(包括xyz),不符合你只操作abc及其子目录的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 23:23:18