有没有办法只获取驱动器上的可用空间?

问题描述

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

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

解决方法

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 MB(1,000字节)的表示法,但Windows实际上是以兆字节MiB(1,024字节)计,因此我的C驱动器有93,313 MB可用空间,而不是93,313 MB。我只是对此进行了查找,并且对阅读此Wikipedia文章中有关Mebibyte的“历史记录和使用情况”部分很感兴趣,其中提到Windows实际上错误地报告了这些值(我今天进行了测试,仍然是这种情况):https://en.wikipedia.org/wiki/Mebibyte

,

您可以这样做:

get-psdrive c
psdrive c
psdrive c | % free