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

[问题求助] [已解决]VBS下如何终止循环中得调用bat

最近头都忙大了,为了一个判定磁盘容量大小并调用bat删除的脚本。具体脚本如下,能够实现判定F盘的可用磁盘容量,且能够自行删除,但是现在的问题是,do循环里面的调用bat脚本停不下来,一直在运行。如要如何修改此vbs脚本。
  1. Set objWMIService = GetObject("winmgmts:")
  2. Set objLogicalDisk = objWMIService.get("Win32_LogicalDisk.DeviceID='f:'")
  3. Dim a
  4. Dim s
  5. Dim m
  6. Dim c
  7. Dim w
  8. c = now
  9. s = objLogicaldisk.Size/(1024*1024*1024)
  10. s = round(s,2)
  11. ' WScript.Echo "全部磁盘:"&s& " G "
  12. m = objLogicalDisk.FreeSpace/(1024*1024*1024)
  13. m = round(m,2)
  14. ' WScript.Echo "剩余空间:"&m& " G "
  15. a = m/s
  16. a = round(a,2)
  17. Do Until a > 0.6
  18. Set shell = WScript.CreateObject("WScript.Shell")
  19. shell.Run"f:\2.bat",0
  20. Loop
  21. w = (FormatPercent(a,2))
  22. ' WScript.Echo " 磁盘剩余空间= "&w
  23. call mail()
复制代码
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2
Good Good Study,Day Day Up!!

  1. Do Until a > 0.6
  2. Set shell = WScript.CreateObject("WScript.Shell")
  3. shell.Run"f:\2.bat",0
  4. Loop
复制代码
这里为什么不改变a的值让它退出循环?

TOP

本帖最后由 ydfan8888 于 2012-3-24 15:17 编辑
这里为什么不改变a的值让它退出循环?
find 发表于 2012-3-24 14:45


Do Until a > 0.6
Set shell = WScript.CreateObject("WScript.Shell")
shell.Run"f:\2.bat",0
s = objLogicaldisk.Size/(1024*1024*1024)
s = round(s,2)
m = objLogicalDisk.FreeSpace/(1024*1024*1024)
m = round(m,2)
a = m/s
a = round(a,2)
Loop

改变了执行也一样的! 在一直的调用。如何做到。>=0.6时就自动退出循环
Good Good Study,Day Day Up!!

TOP

回复 3# ydfan8888


在Loop上面加一句,输出变量a的值,观察一下。
1

评分人数

TOP

回复  ydfan8888


在Loop上面加一句,输出变量a的值,观察一下。
find 发表于 2012-3-24 17:03



    如何修改呢?
Good Good Study,Day Day Up!!

TOP

回复 5# ydfan8888
  1. WScript.Echo a
复制代码

TOP

回复  ydfan8888
find 发表于 2012-3-26 12:55



    谢谢 问题解决了
Good Good Study,Day Day Up!!

TOP

回复 7# ydfan8888


问题解决后,请编辑顶楼帖子在标题前面注明[已解决],并给回答者加分。

TOP

返回列表