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

PowerShell中Get-ChildItem -recurse参数无法按预期工作的问题咨询

解决PowerShell查找特定文件夹下目标CSV文件的问题

问题梳理

需要完成的操作:

  • 在网络路径\\server\folder\sub1\sub2\sub3\sub4(注意:网络共享路径需以双反斜杠\\开头,避免解析错误)下,递归查找所有名称包含subx的文件夹
  • 再在这些subx文件夹的子目录中,找出所有以XX开头的.csv文件

现有命令的问题

  1. 语法错误:字符串变量未闭合(如$SUB="*subx*缺少结尾双引号),直接导致执行异常
  2. 参数逻辑错误:Get-ChildItem同时使用-Filter和-Include时,-Filter会优先作用于顶层路径,无法实现"先找目标文件夹再找文件"的逻辑
  3. 范围错误:第二个命令仅匹配subx相关的项,但未遍历这些项的子目录;第三个命令全局查找所有CSV,未限定在subx文件夹范围内

正确实现命令

分步写法(逻辑清晰)

# 定义路径与匹配规则
$SOURCE = "\\server\folder\sub1\sub2\sub3\sub4"
# 先找到所有名称含subx的文件夹
$targetFolders = Get-ChildItem -Path $SOURCE -Recurse -Directory -Filter "*subx*"

# 遍历每个目标文件夹,查找其下子目录中的XX开头CSV文件
foreach ($folder in $targetFolders) {
    Get-ChildItem -Path $folder.FullName -Recurse -File -Filter "XX*.csv"
}

管道写法(简洁高效)

$SOURCE = "\\server\folder\sub1\sub2\sub3\sub4"
Get-ChildItem -Path $SOURCE -Recurse -Directory -Filter "*subx*" | ForEach-Object {
    Get-ChildItem -Path $_.FullName -Recurse -File -Filter "XX*.csv"
}

关键参数说明

  • -Directory:仅筛选文件夹,避免匹配到名称含subx的文件
  • -File:仅筛选文件,确保结果只返回CSV文件
  • -Filter:性能优于-Include,直接调用文件系统的筛选能力,效率更高

内容的提问来源于stack exchange,提问作者Ian-F

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 10:20:31