免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: 1298812
打印 上一主题 下一主题

[其他] windows下bat脚本判断磁盘大小 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2014-08-05 20:37 |只看该作者
晕,看不懂,留名学习.

论坛徽章:
0
12 [报告]
发表于 2014-08-07 11:30 |只看该作者
本帖最后由 rdcwayx 于 2014-08-11 20:48 编辑
1298812 发表于 2014-07-31 10:07
各位大侠,小弟有个问题请教一下:
bat脚本自动从备份服务器上下载备份数据,做异地备份,这个异地备份服务 ...


方法很多

defrag 可以
fsutil 可以
wmic 可以

我现在用的是 wmic方法
  1. C:\Users\Pale>wmic volume where 'DriveLetter="R:"' get FreeSpace /value


  2. FreeSpace=1259118501888
复制代码
输出就是有很多空行。
并且不是ascii格式的,取值的时候要有点小技巧。

另外拿 windows nt6.1来说 set /a 运算 变量是 32位有符号整形数,这个的话 其实也就是2GB的大小。

处理大数字,你要有自己的方案。

我这里放一段完整判断,有些变量在其他地方定义,但不影响思路。
  1. rem Check target volume free space

  2. for /f "delims=" %%A in ("%TA_BASE%") do set vp=%%~dA
  3. wmic volume where 'DriveLetter="!vp!"' get FreeSpace /value|find /i "FreeSpace=">"%tmp%\SOLAR\FreeSpace_!vp:~0,1!.TXT"
  4. for /f "usebackq delims== tokens=2" %%A in ("%tmp%\SOLAR\FreeSpace_!vp:~0,1!.TXT") do call :Calc %%~A
  5. set/a Target_FreeSpace=SUM/65536

  6. echo Target_FreeSpace=!Target_FreeSpace!GB
  7. call F_Check.bat "%~dpn0" "%PROCESSOR_ARCHITECTURE%" "Target_FreeSpace"
  8. if errorlevel 1 exit/b


  9. rem Sub program to extend calculation range to 10TB level
  10. :Calc
  11. set NUM=%~1
  12. set HighDigi=!NUM:~0,-4!
  13. set LowDigi=!NUM:~-4!
  14. set/a q=HighDigi/16384
  15. set/a r=HighDigi%%16384
  16. set part=!r!!LowDigi!
  17. set/a part/=16384
  18. set/a SUM=q*10000+part
  19. goto :EOF
复制代码

论坛徽章:
0
13 [报告]
发表于 2014-08-08 10:06 |只看该作者
回复 12# Pale_Cheung


    wmic volume where 'DriveLetter="R:"' get FreeSpace /value
    就这一句就够了,多谢啊。

论坛徽章:
0
14 [报告]
发表于 2014-08-08 11:37 |只看该作者
回复 9# Shell_HAT


    前辈,我测试过了,gtr可以用来比较数字,如有错误,请详细赐教。


@echo off
set /a num1=20
set /a num2=15
if %num1% gtr %num2% echo %num1%大于%num2%
if %num1% EQU %num2% echo %num1%等于%num2%
if %num1% LSS %num2% echo %num1%小于%num2%
pause>nul

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
15 [报告]
发表于 2014-08-08 11:46 |只看该作者
回复 14# 1298812


    8楼代码的变量加了双引号

论坛徽章:
0
16 [报告]
发表于 2014-08-08 14:22 |只看该作者
回复 15# Shell_HAT


    finally,tks。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP