[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[数值计算] [已解决]批处理for语句里if嵌套

本帖最后由 梦缘隋都 于 2015-3-23 12:22 编辑
  1. for /f "skip=1 tokens=1,2,3 delims= " %%i in ('wmic logicaldisk where "drivetype=3" get name^,size^,freespace') do (
  2.     for /f %%a in ("%%i") do (
  3.         set /a n+=1
  4.         set  AAA=%%i
  5.         set  BBB=%%k
  6.         rem 循环取值
  7.         
  8.         call :division !BBB! 1073741824  quote 2
  9.         
  10.         
  11.         call:division !AAA! !BBB! quot 2
  12.        set degree=0.8  
  13. echo 盘符%%j  空间!quote!GB  使用率为!quot!
  14.        )
  15. )
复制代码
这段代码,需要在echo前面做一个判断  if !degree! lss !quot2!  则 输出  echo 盘符%%j  空间!quote!GB  使用率为!quot!
即想把使用率大于80%(这里是0.8)的磁盘分区信息打印出来,如果不是for在外面 就可以实现比较,但是在for里面就不知道该怎么实现了 ~~
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 pcl_test 于 2015-3-4 23:51 编辑

回复 1# 梦缘隋都
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1-3 delims= " %%i in ('wmic logicaldisk where "drivetype=3" get name^,size^,freespace ^|findstr "[0-9]"') do (
  4. >temp.vbs echo,a=%%i
  5. >>temp.vbs echo,b=%%k
  6. >>temp.vbs echo,s=b/1024/1024/1024
  7. >>temp.vbs echo,fs=a/1024/1024/1024
  8. >>temp.vbs echo,n=a/b*100
  9. >>temp.vbs echo,wscript.echo round^(s,2^),round^(fs,2^),round^(n^)
  10. for /f "tokens=1-3 delims= " %%a in ('cscript /nologo temp.vbs') do set "size=%%a" & set "freesize=%%b" & set "usage=%%c"
  11. set /a usage=100-!usage!
  12. del temp.vbs 2>nul
  13. if !usage! gtr 80 echo,盘符%%j 总空间!size!GB 剩余空间!freesize!GB 使用率!usage!%%
  14. )
  15. pause
复制代码
1

评分人数

TOP

太感谢 了,比我写的脚本高端多了 ,谢谢!

TOP

回复 3# 梦缘隋都
问题得到解答以后在标题最前面注明[已解决]
http://www.bathome.net/thread-3473-1-1.html

TOP

返回列表