gpt4 book ai didi

windows - 从 Windows 命令行获取文件夹大小

转载 作者:可可西里 更新时间:2023-11-01 11:53:22 32 4
gpt4 key购买 nike

在 Windows 中是否可以在不使用任何第 3 方工具的情况下从命令行获取文件夹的大小?

我想要的结果与在 Windows 资源管理器中右键单击文件夹 → 属性时得到的结果相同。

最佳答案

您可以递归地添加大小(以下是批处理文件):

@echo off
set size=0
for /r %%x in (folder\*) do set /a size+=%%~zx
echo %size% Bytes

但是,这有几个问题,因为 cmd 仅限于 32 位有符号整数运算。所以它会得到超过 2 GiB 的错误1。此外,它可能会多次计算符号链接(symbolic link)和连接,因此它充其量只是一个上限,而不是真实大小(不过,使用任何工具都会遇到这个问题)。

另一种选择是 PowerShell:

Get-ChildItem -Recurse | Measure-Object -Sum Length

或更短:

ls -r | measure -sum Length

如果你想让它更漂亮:

switch((ls -r|measure -sum Length).Sum) {
{$_ -gt 1GB} {
'{0:0.0} GiB' -f ($_/1GB)
break
}
{$_ -gt 1MB} {
'{0:0.0} MiB' -f ($_/1MB)
break
}
{$_ -gt 1KB} {
'{0:0.0} KiB' -f ($_/1KB)
break
}
default { "$_ bytes" }
}

您可以直接从 cmd 使用它:

powershell -noprofile -command "ls -r|measure -sum Length"

1 我在某处的批处理文件中确实有一个部分完成的 bignum 库,它至少可以正确进行任意精度整数加法。我真的应该发布它,我想 :-)

关于windows - 从 Windows 命令行获取文件夹大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12813826/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com