使用批处理命令检查可用磁盘空间

有没有办法在批处理脚本中检查硬盘的可用空间?

我宁愿不使用第三方应用程序,因为我需要填写很多表单,在这种情况下,我想我会自己写一个小应用程序。

可靠地获取可用磁盘空间的最简单方法是使用WMI。 当试图parsingdir的输出时,你会得到各种有趣的问题,至less在其他语言的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命令可以为我们删除它们:

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

这里的好处是,因为我们只使用第二个标记,所有空行(没有第二个标记)被忽略。

记住在batch file中使用这个符号时要加倍%符号:

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

您现在可以使用存储在环境variables%FreeSpace%的可用空间。

这是一个简单的脚本来检查您的C驱动器

回声C驱动器可用空间>> CDrive.txt

dir c:\ | find / i“bytes free”>> CDrive.txt