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

如何将PowerShell脚本中固定路径替换为CSV用户列表输入?

批量计算CSV用户列表对应的目录大小

首先确保你的CSV文件格式符合需求,以下分两种常见场景给出解决方案:

场景1:CSV仅包含用户名(路径格式固定为F:\Local_Users\<用户名>)

假设你的CSV文件(比如users.csv)内容如下:

Username
HRosehill
JDoe
SMith

对应的PowerShell脚本:

# 导入CSV文件
$users = Import-Csv -Path "C:\your\csv\path\users.csv"

# 遍历每个用户,计算对应目录大小
foreach ($user in $users) {
    # 拼接用户目录路径
    $userPath = "F:\Local_Users\$($user.Username)"
    
    # 执行大小计算并关联用户信息
    Get-ChildItem -Path $userPath -Recurse -Force -ErrorAction SilentlyContinue | 
        Measure-Object -Property Length -Sum | 
        Select-Object @{Name="用户名";Expression={$user.Username}},
                      @{Name="目录路径";Expression={$userPath}},
                      @{Name="大小(GB)";Expression={"{0:N2}" -f ($_.Sum/1gb)}}
}

场景2:CSV直接包含完整目录路径

如果CSV里已经存储了每个用户的完整目录路径(比如user_paths.csv):

UserPath
F:\Local_Users\HRosehill
D:\Users\JDoe
E:\Home\SMith

对应的简化脚本:

# 导入CSV文件
$userPaths = Import-Csv -Path "C:\your\csv\path\user_paths.csv"

# 遍历每个路径计算大小
foreach ($item in $userPaths) {
    Get-ChildItem -Path $item.UserPath -Recurse -Force -ErrorAction SilentlyContinue | 
        Measure-Object -Property Length -Sum | 
        Select-Object @{Name="目录路径";Expression={$item.UserPath}},
                      @{Name="大小(GB)";Expression={"{0:N2}" -f ($_.Sum/1gb)}}
}

额外优化:将结果导出为CSV

如果需要把所有计算结果保存到新的CSV文件,可按以下方式修改(以场景1为例):

$results = foreach ($user in $users) {
    $userPath = "F:\Local_Users\$($user.Username)"
    Get-ChildItem -Path $userPath -Recurse -Force -ErrorAction SilentlyContinue | 
        Measure-Object -Property Length -Sum | 
        Select-Object @{Name="用户名";Expression={$user.Username}},
                      @{Name="目录路径";Expression={$userPath}},
                      @{Name="大小(GB)";Expression={"{0:N2}" -f ($_.Sum/1gb)}}
}

# 导出结果到指定CSV文件
$results | Export-Csv -Path "C:\your\output\path\user_dir_sizes.csv" -NoTypeInformation -Encoding UTF8

注意事项

  • 确保CSV文件的列名和脚本中引用的名称完全一致(比如Username或UserPath)
  • 若需排查目录不存在等异常,可将-ErrorAction SilentlyContinue改为-ErrorAction Stop,并添加try/catch块处理错误
  • 计算大目录时耗时较长,建议先测试单个用户路径验证逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 23:30:50