有没有办法在驱动器上获得免费的 space?

Is there a way to get just the free space on a drive?

我希望能够以整数形式获取磁盘上的空闲 space,最好以字节或千字节为整数。我一直没能找到办法做到这一点。我的最终目标是创建一个 while 循环来复制文件,直到磁盘 space 已满。

谢谢。任何帮助将不胜感激。

PS C:\> (Get-Volume -DriveLetter C).SizeRemaining

97864130560

这将输出一个 UInt64 值作为 C:\ 驱动器上剩余的可用字节数。

如果您想获取其他卷的信息,请使用 Get-Volume 函数找出您要查找的驱动器盘符:

PS C:\> Get-Volume

DriveLetter FriendlyName FileSystemType DriveType HealthStatus OperationalStatus SizeRemaining      Size
----------- ------------ -------------- --------- ------------ ----------------- -------------      ----
                         NTFS           Fixed     Healthy      OK                      84.1 MB    602 MB
C                        NTFS           Fixed     Healthy      OK                     91.14 GB 231.67 GB
            Recovery     NTFS           Fixed     Healthy      OK                       515 MB    529 MB
E                        NTFS           Fixed     Healthy      OK                     86.96 GB 231.67 GB

PS C:\> (Get-Volume -DriveLetter E).SizeRemaining

96593814487

您可以将该值转换为不同的存储大小:

# Replace 1MB with 1KB or 1GB or 1TB
PS C:\> (Get-Volume -DriveLetter C).SizeRemaining/1MB

93313.09765625

注意:MB 是 1 兆字节(1,000 字节)的表示法,但 Windows 实际上是以兆字节 MiB(1,024 字节)为单位计算的,因此我的 C 盘有 93,313 MiB 可用空间——而不是 93,313 MB。我刚刚查了一下,很感兴趣地阅读了这篇关于 Mebibyte 的维基百科文章的历史和使用部分,其中提到 Windows 实际上错误地报告了这些值(我今天测试了它,情况仍然如此):https://en.wikipedia.org/wiki/Mebibyte

你可以这样做:

get-psdrive c
psdrive c
psdrive c | % free