Board logo

标题: [系统相关] 【已解决】批处理如何获取指定盘大小的变量? [打印本页]

作者: 807979023    时间: 2013-3-31 18:59     标题: 【已解决】批处理如何获取指定盘大小的变量?

本帖最后由 807979023 于 2013-4-1 10:55 编辑

比如:
如何获取R盘大小的变量,以m为单位。
作者: 家鹏    时间: 2013-3-31 20:49

wmic LogicalDisk where "Caption='R:'" get FreeSpace,Size /value

以字节为单位
作者: apang    时间: 2013-4-1 10:16

  1. @echo off
  2. %2 for /f "tokens=2delims==" %%a in ('wmic logicaldisk where "name='C:'" get size/value^|find "="') do set sz=%%a
  3. %2 mshta vbscript:createobject("wscript.shell").run("%~s0 "^&round(%sz%/1024/1024,2)^&" Rem")(window.close)&goto :eof
  4. echo C盘容量为 %1 MB
  5. pause
复制代码

作者: terse    时间: 2013-4-1 14:00

笨办法也是老办法了
  1. @echo off&setlocal enabledelayedexpansion
  2. set Md=1048576&set "name=c:"
  3. for /l %%i in (1 1 9) do set /aNum%%i=MD*%%i&set "Num%%i=0!Num%%i!"
  4. for /f "skip=1" %%a in ('wmic logicaldisk where "name='%name%'" get Size') do (
  5.     set "Size=0%%a00"
  6.         set S=!Size!&set Line=0
  7.         for %%i in (16 8 4 2 1) do if "!s:~%%i!" neq "" set/a Line+=%%i&set "S=!S:~%%i!"
  8.         set "str=!Size:~1,7!"
  9.         if !str! lss !MD! (set i=8)else set i=7&set "str=!Size:~,7!"
  10.         for /l %%i in (1 1 9) do set s=!s:%%i=0!
  11.         for /l %%i in (!i! 1 !Line!) do (
  12.             set "str=!s!!str!!Size:~%%i,1!"
  13.             set "str=!str:~-8!"
  14.             if !str! geq !Num1! (
  15.                set N=1
  16.                for /l %%j in (2 1 9) do if "!str!" geq "!Num%%j!" set "N=%%j"
  17.                set "G_Size=!G_Size!!N!"
  18.                for %%j in (!N!) do set /a "str=3!str!-1!Num%%j!"
  19.                set str=!str:~1!
  20.             ) else set "G_Size=!G_Size!0"
  21.         )
  22.         echo %name% !G_Size:~,-2!.!G_Size:~-2! [M]
  23. )
  24. pause
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2