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

PowerShell如何遍历C盘所有目录及子目录搜索指定文件

PowerShell 遍历C盘全目录查找02.jpg的实现方案

完全可以实现,你当前的脚本仅针对固定路径做文件存在性检测,要覆盖C盘所有层级的嵌套子目录搜索目标文件,直接用PowerShell原生的Get-ChildItem命令即可,不需要自己手写递归逻辑,执行效率和稳定性都有保障。


基础搜索脚本(列出所有匹配的02.jpg路径)

# 遍历C盘所有目录查找名为02.jpg的文件
Get-ChildItem -Path C:\ -Filter "02.jpg" -Recurse -File -ErrorAction SilentlyContinue | ForEach-Object {
    Write-Output "找到目标文件,完整路径:$($_.FullName)"
}

参数说明:

  • -Path C:\:指定遍历的根目录为C盘
  • -Filter "02.jpg":提前过滤文件名匹配的项,比遍历完成后再筛选速度快数倍
  • -Recurse:开启递归遍历,自动扫描所有层级的嵌套子目录
  • -File:仅匹配文件类型,自动排除同名文件夹,和你原脚本中-PathType Leaf的判定逻辑一致
  • -ErrorAction SilentlyContinue:跳过遍历过程中因系统目录权限不足、文件被占用导致的报错,避免脚本意外中断

适配你原有检测逻辑的版本

如果需求是只要找到任意一个02.jpg,就输出指定提示并返回退出码1,可以直接用下面的脚本,加了提前终止逻辑,找到第一个匹配项就停止遍历,不用扫完整个C盘,能省大量时间:

# 找到第一个匹配的02.jpg就终止搜索
$found = Get-ChildItem -Path C:\ -Filter "02.jpg" -Recurse -File -ErrorAction SilentlyContinue | Select-Object -First 1
if ($found) {
    Write-Output "Year - NULL in argument"
    exit 1
}

注意:遍历整个C盘耗时会比较久,如果你大概知道文件的存放范围,可以把-Path后面的路径改成更精准的目录(比如C:\你的工作目录),搜索速度会提升非常明显。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 05:12:17