|
本帖最后由 dos时代菜鸟 于 2020-9-23 20:59 编辑
这是用 wmic 实现的。win10 桌面环境下测试通过
get_free.7z
(428 Bytes, 下载次数: 3)
因为以字节做单位,数据在 cmd 下会溢出,所以,要设置位数= 5.
又因为 wmic 在 cmd 下输出 会有 回车符参与文本流,所以,用了二次 for 来规避之。
- @echo off
- setlocal ENABLEDELAYEDEXPANSION
- set free=0
- set bit=5
- echo Drv,Free,max_free
- for /f "skip=1 delims=" %%c in (' wmic volume get Driveletter^,freespace') do (
- for /f "tokens=1,2 delims= " %%i in ("%%c") do (
- if not "%%j"=="" (
- set free2=%%j
- set free_x=!free2:~0,-%bit%!
- if !free_x! gtr !free! (
- set max_d=%%i
- set free=!free_x!
- set free.=!free2:~-%bit%!
- )
- echo %%i %%j !free!!free.!
- )
- )
- )
- echo.
- if not "!max_d!"=="" ( echo MAX_FREE_DRV=!MAX_D!) ELSE (echo 没有可用分区!)
- pause
复制代码 |
|