是否有办法使用批处理脚本来检查硬盘的可用空间?
由于我需要填写很多表格,所以我宁愿不使用第三方应用程序,在这种情况下,我想我会自己编写一个小应用程序。
答案1
可靠地获取可用磁盘空间的最简单方法是使用 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%
。
答案2
这是一个检查你的 C 盘的脚本
echo C-drive Free Space >> CDrive.txt
dir c:\|find /i "bytes free" >> CDrive.txt