加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 如何查找映射驱动器的可用空间百分比?

发布时间:2020-12-14 01:46:07 所属栏目:Windows 来源:网络整理
导读:是否可以以编程方式找到映射驱动器中的可用空间? 如何使用ms-dos查找驱动器中的可用空间百分比. 在硬盘中找到驱动器的可用空间可能很容易,但我需要找到映射驱动器的可用空间. 我在我的系统中映射了一些文件服务器. 可以在“我的电脑”中看到这个,但是如何在
是否可以以编程方式找到映射驱动器中的可用空间?

如何使用ms-dos查找驱动器中的可用空间百分比.
在硬盘中找到驱动器的可用空间可能很容易,但我需要找到映射驱动器的可用空间.

我在我的系统中映射了一些文件服务器.

可以在“我的电脑”中看到这个,但是如何在命令提示符中显示它?

(取自我在服务器故障中的旧答案)

可靠地获取可用磁盘空间的最简单方法是使用WMI.当试图解析dir的输出时,你会得到各种有趣的问题,至少在其他语言版本的Windows中.您可以使用wmic来查询驱动器上的可用空间:

wmic logicaldisk where "DeviceID='C:'" get FreeSpace

这将输出类似的东西

FreeSpace
197890965504

您可以通过添加/ format:value开关将其强制为一行:

> wmic logicaldisk where "DeviceID='C:'" get FreeSpace /format:value

FreeSpace=197890965504

那里有一些空行,但是(大约三到四行)不适合处理.幸运的是,当我们进行标记化时,for命令可以为我们删除它们:

for /f "usebackq delims== tokens=2" %x in (`wmic logicaldisk where "DeviceID='C:'" get FreeSpace /format:value`) do set FreeSpace=%x

这里的好处是,因为我们只使用第二个令牌,所有空行(没有第二个令牌)都会被忽略.

在批处理文件中使用此符号时,请记住加倍%符号:

for /f "usebackq delims== tokens=2" %%x in (`wmic logicaldisk where "DeviceID='C:'" get FreeSpace /format:value`) do set FreeSpace=%%x

您现在可以使用存储在环境变量%FreeSpace%中的可用空间.

现在获取百分比有点棘手,因为批处理文件仅支持32位整数进行计算.但是,您可能不需要计算到字节;我认为兆字节已足够了:

for /f "usebackq delims== tokens=2" %%x in (`wmic logicaldisk where "DeviceID='C:'" get FreeSpace /format:value`) do set FreeSpace=%%x
for /f "usebackq delims== tokens=2" %%x in (`wmic logicaldisk where "DeviceID='C:'" get Size /format:value`) do set Size=%%x
set FreeMB=%FreeSpace:~0,-6%
set SizeMB=%Size:~0,-6%
set /a Percentage=100 * FreeMB / SizeMB
echo C: is %Percentage% % free

除非您的体积大于20 TiB,否则这应该有效.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读