如何使用Get-ChildItem在多文件夹中查找仅今日生成的指定多个文件
PowerShell脚本修改方案
适配需求说明
- 支持多文件夹校验:将单路径配置改为路径数组,遍历所有路径执行检查逻辑
- 新增当日文件校验:筛选文件
LastWriteTime属性为当日日期,避免匹配到历史同名文件
修改后完整脚本
# 配置需要校验的多个文件夹路径,可按实际需求增删 $folders = @( '\\path\subfolder1\', '\\path\subfolder2\', 'D:\local\business_folder\' ) # 配置需要校验的目标文件名列表 $targetFiles = @( "file1.txt", "file2.txt", "file3.txt" ) # 遍历所有指定文件夹逐一校验 foreach ($folder in $folders) { Write-Host "`n===== 正在校验文件夹:$folder =====" -ForegroundColor Cyan # 仅获取当前文件夹下当日修改的文件名称 $todayFiles = Get-ChildItem -Path $folder -Recurse -File | Where-Object { $_.LastWriteTime.Date -eq (Get-Date).Date } | Select-Object -ExpandProperty Name foreach ($f in $targetFiles) { if ($todayFiles -contains $f) { Write-Host "✅ 文件 $f 存在且为当日版本" -ForegroundColor Green } else { Write-Host "❌ 文件 $f 不存在或非当日版本" -ForegroundColor Red } } }
核心改动点
- 把原单路径变量
$folder改为数组类型的$folders,新增外层遍历逻辑实现多路径校验 - 取消
Get-ChildItem的-Name参数,先获取完整文件对象,筛选出当日修改的文件后再提取文件名做匹配,避免历史文件干扰校验结果 - 校验结果同步标注了日期符合情况,结果可读性更高
内容的提问来源于stack exchange,提问作者Matt
相关产品推荐
相关产品推荐

