如何为多文件夹检查PowerShell脚本添加ForEach命令并显示状态
解决PowerShell逐个检查文件夹是否存在文件的问题
你的原脚本是把三个文件夹的文件总数合在一起判断,没法单独检查每个文件夹的情况。用ForEach循环逐个处理每个目录就能实现需求,修改后的脚本如下:
$directories = "C:\Folder1","C:\Folder2","C:\Folder3" foreach ($dir in $directories) { # 只统计当前文件夹下的文件,不包含子文件夹;若要包含子文件夹,可去掉 -File 参数 $fileCount = (Get-ChildItem -Path $dir -File -ErrorAction SilentlyContinue).Count if ($fileCount -gt 0) { Write-Host "Files in folder $dir" -ForegroundColor Red } else { Write-Host "No files in folder $dir" -ForegroundColor Green } }
关键说明:
- 用
foreach ($dir in $directories)遍历每个目标文件夹,每次循环处理一个目录 -File参数限定只统计文件(如果要包含子文件夹,去掉这个参数即可)-ErrorAction SilentlyContinue避免因文件夹不存在等情况抛出错误,脚本会继续执行- 直接获取
Count属性比用Measure-Object更简洁高效 - 每个目录单独判断,输出的提示会显示具体文件夹路径,更清晰
如果需要递归检查子文件夹里的文件,把Get-ChildItem的参数改成-Recurse -File即可。
内容的提问来源于stack exchange,提问作者Michal
相关产品推荐
相关产品推荐

