操作系统为WinXP,想不借助第三方软件实现显示磁盘剩余空间的功能,潜水了好几天,写了如下代码,请大家帮帮我.
@echo off
rem 存在问题
rem
rem 1、怎样把字节数转换为以M为单位的数?
rem
rem 2、怎样才能不产生临时文件?
color 1f
title 显示C盘剩余空间
del size.txt>nul 2>nul
dir /-c c:\|find "可用字节">size.txt
for /f "tokens=3" %%a in (size.txt) do echo C盘还有 %%a 字节剩余空间
del size.txt>nul 2>nul
echo.
echo.
echo.
echo 按任意键退出
pause>nul
目前已经找到了完美的解决方案,请看代码:
出处:求所有分区剩余空间的精确值(以MB为单位)
[ Last edited by namejm on 2007-3-11 at 02:26 PM ]
@echo off
rem 存在问题
rem
rem 1、怎样把字节数转换为以M为单位的数?
rem
rem 2、怎样才能不产生临时文件?
color 1f
title 显示C盘剩余空间
del size.txt>nul 2>nul
dir /-c c:\|find "可用字节">size.txt
for /f "tokens=3" %%a in (size.txt) do echo C盘还有 %%a 字节剩余空间
del size.txt>nul 2>nul
echo.
echo.
echo.
echo 按任意键退出
pause>nul
目前已经找到了完美的解决方案,请看代码:
@echo off
setlocal enabledelayedexpansion
:Main
cls
set /a num2=1024*1024
for %%i in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
if exist %%i:\ (
set num3_str=
set num4=
for /f "tokens=3" %%j in ('dir /-c %%i:\') do set num1=%%j
if not "!num1!"=="0" (
call :loop
for /f "delims=0 tokens=*" %%k in ("!num3_str!") do set num3_str=%%k
echo.
echo %%i 盘剩余空间为 !num3_str! MB
echo.
)
)
)
)
pause
goto Main
:loop
:: 求商
set /a num3=%num4%%num1:~0,1%/%num2%
:: 求商序列
set num3_str=%num3_str%%num3%
:: 求余
set /a num4=%num4%%num1:~0,1%%%%num2%
if %num4% equ 0 set num4=
set num1=%num1:~1%
if not "%num1%"=="" goto loop
goto :eof
出处:求所有分区剩余空间的精确值(以MB为单位)
[ Last edited by namejm on 2007-3-11 at 02:26 PM ]

精华I