Board logo

标题: [系统相关] 批处理 判断C盘大小,假如C盘小于10G则删除某个文件夹下的文件 [打印本页]

作者: xqsong    时间: 2012-3-22 14:24     标题: 批处理 判断C盘大小,假如C盘小于10G则删除某个文件夹下的文件

请教哪位高手:

   1, 判断C盘容量大小
   2, 假如C盘小于10G则删除C:\stw\Master\*.*文件
   3, 同时打开C:\A.jpg图片到当前桌面
作者: 冷玉公子    时间: 2012-3-22 16:01

建议下次发帖前,先做搜索。
http://www.bathome.net/viewthrea ... hlight=%B4%C5%C5%CC
作者: find    时间: 2012-3-22 20:50

回复 2# 冷玉公子


你还需要教楼主怎样比较空间是否小于10G
这个对于初学者可不是一件容易的事情
作者: xqsong    时间: 2012-3-23 08:37

的确需要帮忙完成整个批处理
只有显示容量没有用。。。
作者: ydfan8888    时间: 2012-3-23 09:15

学习了

功能确实不错
作者: xqsong    时间: 2012-3-23 10:37

哪位高手请帮忙写一个批处理?非常感谢。。。
作者: apang    时间: 2012-3-23 13:38

本帖最后由 apang 于 2012-3-23 13:40 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. set size=10737418240
  3. for /f "skip=1" %%a in ('wmic logicaldisk where ^(deviceid^="c:"^) get size') do set sizec=%%a
  4. set var=!sizec!&call :lp
  5. if !n! gtr 11 (echo 大于10G&pause&goto :eof
  6. ) else (
  7.   if !n! lss 11 (goto st
  8.   ) else (   
  9.     for /l %%a in (0 1 10) do (
  10.         set/a a=!sizec:~%%a,1!&set/a b=!size:~%%a,1!
  11.         if !a! gtr !b! (echo 大于10G&pause&goto :eof
  12.         ) else if !a! lss !b! goto st
  13.     )
  14.   )
  15. )
  16. :st
  17. del /s /q C:\stw\Master\*.*
  18. start "" C:\A.jpg
  19. goto :eof
  20. :lp
  21. if not "!var!"=="" set var=!var:~0,-1!&set/a n+=1&goto lp
复制代码
写的很啰嗦,哪位高手简化下。
作者: xqsong    时间: 2012-3-23 16:33

尝试了,小于10G时不能执行后面的命令,好像在判断硬盘大小时数值太大导致。。。。
作者: xqsong    时间: 2012-3-25 11:18

哪位高手请指点啊,因硬盘容量数值太大,导致判断失效,请帮忙写一个批处理完成。。。
作者: apang    时间: 2012-3-25 11:45

判断的是C盘容量,与硬盘多大似乎没关系呀
你说“不能执行后面的命令”,是啥意思?
作者: xqsong    时间: 2012-3-25 12:48

应该是:判断语句不起作用,当硬盘到了10G时不执行删除的命令,不确定是否为硬盘容量的大小数值超过了规定的值,如10G的硬盘容量为:10737418240
作者: find    时间: 2012-3-25 12:50

回复 13# xqsong


10G这个数字超过了批处理能够直接比较的上限,需要另外的方法去处理。
作者: find    时间: 2012-3-25 13:21

能否帮忙写个批处理,非常感谢!判断要有效

请不要发私信给我,谢谢。有什么问题直接回复我的帖子,论坛会自动提醒我的。
作者: xqsong    时间: 2012-3-25 18:59

感谢8楼的,读懂了你的程序,原来你写的不是判断硬盘剩余容量而是C盘容量,修改过来就可以,非常感谢各位高手的帮忙!




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