问题描述
我希望能够以整数形式获取磁盘上的可用空间,最好以整数形式以字节或千字节为单位。我还没有找到一种方法来做到这一点。我的最终目标是创建一个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