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