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

PowerShell新手求教:如何读取文件夹及子文件夹中指定文件名的CSV文件

解决方法

可行代码

先给你能直接用的代码,替换目标文件夹路径即可:

# 替换成你的目标文件夹实际路径
$logfiles = "C:\Your\Target\Directory"

# 递归查找所有文件名包含"honey"的CSV文件
$targetFiles = Get-ChildItem -Path $logfiles -Filter *.csv -Recurse | Where-Object { $_.Name -like "*honey*" }

# 遍历文件并输出内容
foreach ($file in $targetFiles) {
    # 打印文件路径方便区分
    Write-Host "`n--- 以下是 $($file.FullName) 的内容 ---"
    Get-Content -Path $file.FullName
}

原代码的问题分析

  1. 未遍历子文件夹:Get-ChildItem默认只检索当前文件夹,必须加-Recurse参数才会遍历所有子目录
  2. 未筛选文件名:原代码仅过滤了.csv后缀,没有筛选文件名包含"honey"的文件,需要用Where-Object { $_.Name -like "*honey*" }实现(*是通配符,匹配任意字符)
  3. 循环语法错误:$i g-t $files.Count是拼写错误,正确的比较运算符是-lt(小于),而且PowerShell遍历集合更推荐用foreach循环,比传统for循环更简洁不易出错
  4. 逻辑倒置:原代码是读取文件后过滤含honey[5]的行,但你的需求是先找文件名含honey的CSV,再显示文件内容,这部分逻辑搞反了

可选:如果需要过滤文件内容中的特定行

如果你同时需要只显示文件中包含honey[5]的行,修改Get-Content部分即可(注意正则转义,[是特殊字符,要加\转义):

Get-Content -Path $file.FullName | Where-Object { $_ -match 'honey\[5\]' }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 12:55:16