首页 > 解决方案 > 如何使用 Powershell 获取更新后的文件夹大小

问题描述

我需要使用 Powershell 检查特定文件夹的大小。该文件夹的大小不断增长。然而,尽管如此,Powershell 总是返回相同的大小。

示例:
Powershell 返回 1000079693
等待 5 秒
Powershell STILL 返回 1000079693

唯一的例外是如果我转到文件夹,右键单击并单击属性。我相信这会更新操作系统中的某些内容。或者我可以等待很长时间(比如 5 分钟) 这样做之后,Powershell 会显示一个新的文件夹大小数字。

我的问题是,如何强制 Powershell 立即获取最新的文件夹大小,而不是返回旧大小?

try{
    $size = Get-ChildItem "C:\Users\Administrator\Desktop\GUIClicker\ButtonsThatAreReady" -Recurse -ErrorAction stop |
        Measure-Object -property length -sum
    Write-Host $size.sum
} catch{
    Write-Host ":Error:"
}

标签: windowspowershell

解决方案


在脚本运行时执行此操作(来自单独的 PowerShell 会话)

DO {
$a
Get-ChildItem -Path "C:\Users\Administrator\Desktop\GUIClicker\ButtonsThatAreReady" -Force | Measure-Object -Property length -Sum | Select-Object Sum
Start-Sleep -s 1
$a++
} Until ($a -ge 10)

如所写,这将运行约 10 秒,将 10 替换为您想要执行的秒数和/或将睡眠从 1 秒更改为您需要的任何秒数。


推荐阅读