有没有办法在批处理脚本中检查硬盘的可用空间?
我宁愿不使用第三方应用程序,因为我需要填写很多表单,在这种情况下,我想我会自己写一个小应用程序。
可靠地获取可用磁盘空间的最简单方法是使用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