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

如何用PowerShell脚本向现有CSV追加磁盘使用快照数据?

PowerShell 磁盘快照记录解决方案

完整可运行脚本

# 配置参数:指定监控驱动器和CSV存储路径
$targetDrive = "C"
$outputCsv = "C:\disk_usage_snapshots.csv"

# 获取当前时间,生成需求格式的时间戳
$recordTime = Get-Date -Format "M/d/yyyy HH:mm"

# 获取驱动器存储数据并转换为GB单位
$driveStats = Get-PSDrive -Name $targetDrive -PSProvider FileSystem
$usedGB = [math]::Round($driveStats.Used / 1GB, 4)
$totalCapacityGB = [math]::Round(($driveStats.Used + $driveStats.Free) / 1GB, 1)

# 构造快照对象,字段名严格匹配需求
$snapshotEntry = [PSCustomObject]@{
    "Datetime"       = $recordTime
    "Drive"          = $targetDrive
    "Used (GB)"      = $usedGB
    "Capacity (GB)"  = $totalCapacityGB
}

# 写入CSV:自动创建/追加,避免类型信息干扰
$snapshotEntry | Export-Csv -Path $outputCsv -Append -NoTypeInformation -Encoding UTF8

核心问题解决说明

  • 时间戳添加:使用Get-Date -Format "M/d/yyyy HH:mm"直接生成符合要求的日期时间格式,无需额外字符串处理
  • 追加而非覆盖:Export-Csv的-Append参数是关键,它会检测目标文件是否存在:
    • 文件不存在时自动创建并写入表头
    • 文件存在时直接在末尾追加新数据行
  • 单位转换与精度控制:通过除以1GB将字节转换为GB,用[math]::Round()分别控制已用空间保留4位小数、总容量保留1位小数,完全匹配示例格式
  • 避免冗余信息:-NoTypeInformation参数防止每次写入时添加PowerShell的类型注释行,保证CSV结构干净

运行效果验证

执行脚本后,CSV文件的结构会和需求完全一致:

Datetime,Drive,Used (GB),Capacity (GB)
10/3/2022 16:24,C,225.2344,995.5
10/3/2022 16:29,C,223.5344,995.5

(注:CSV本质是逗号分隔,用Excel或表格工具打开会自动呈现对齐的列格式)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 07:00:57