本帖最后由 WHY 于 2018-11-3 16:03 编辑
一定要转换为MB,这样应该可以:- @echo off & setlocal enabledelayedexpansion
- set "alarmValue=1024"
- for /f "tokens=3" %%i in ('dir /a /-c C:') do set "freeSpace=%%i"
- call :GetMB
- if !rt! LSS !alarmValue! (
- echo;低于警戒值,发邮件
- ) else (
- echo;空间充足,剩余!rt!MB,警戒值!alarmValue!MB
- )
- pause & exit /b
-
- :GetMB
- set "str=!freeSpace!FEDCBA9876543210" & set /a Len=0x!str:~16,1!
- for /L %%i in (0 1 !Len!) do (
- set "sang=!yu!!freeSpace:~%%i,1!"
- set /a yu=sang%%1048576,sang/=1048576
- if "!yu!" == "0" set "yu="
- set "rt=!rt!!sang!"
- )
- for /f "tokens=* delims=0" %%i in ("!rt!") do set /a rt=%%i+0
复制代码
|