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

PowerShell遍历变量中文件夹列表:验证存在与获取大小求助

PowerShell 验证文件夹存在并获取大小解决方案

假设你从Oracle查询得到的文件夹路径已经存储在$folderPaths变量中(应为字符串数组),可以用以下代码完成需求:

# 遍历每个文件夹路径
foreach ($path in $folderPaths) {
    # 验证路径是否为存在的文件夹
    if (Test-Path -Path $path -PathType Container) {
        # 递归获取所有文件并计算总大小
        $sizeStats = Get-ChildItem -Path $path -Recurse -File | Measure-Object -Property Length -Sum
        
        # 将字节数转换为易读的GB格式(保留两位小数)
        $readableSize = [math]::Round($sizeStats.Sum / 1GB, 2)
        
        Write-Output "文件夹 '$path' 存在,总大小:$readableSize GB"
    }
    else {
        Write-Warning "文件夹 '$path' 不存在或不是有效文件夹"
    }
}

你之前可能踩的坑:

  • 未指定-File参数:如果直接用Get-ChildItem -Recurse,会包含文件夹对象,而文件夹的Length属性为0,导致计算结果错误
  • 路径格式问题:如果路径包含空格或特殊字符,确保$folderPaths中的字符串是完整的(比如没有被截断)
  • 权限限制:如果部分子文件夹无法访问,可添加-ErrorAction SilentlyContinue忽略报错(但建议后续排查权限问题):
    $sizeStats = Get-ChildItem -Path $path -Recurse -File -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum
    

可选优化(非递归,仅当前文件夹):

如果不需要包含子文件夹的大小,去掉-Recurse参数即可:

$sizeStats = Get-ChildItem -Path $path -File | Measure-Object -Property Length -Sum

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 06:45:39