标题: [问题求助] [已解决]VBS下如何终止循环中得调用bat [打印本页]
作者: ydfan8888 时间: 2012-3-24 14:02 标题: [已解决]VBS下如何终止循环中得调用bat
最近头都忙大了,为了一个判定磁盘容量大小并调用bat删除的脚本。具体脚本如下,能够实现判定F盘的可用磁盘容量,且能够自行删除,但是现在的问题是,do循环里面的调用bat脚本停不下来,一直在运行。如要如何修改此vbs脚本。- Set objWMIService = GetObject("winmgmts:")
- Set objLogicalDisk = objWMIService.get("Win32_LogicalDisk.DeviceID='f:'")
-
- Dim a
- Dim s
- Dim m
- Dim c
- Dim w
-
- c = now
- s = objLogicaldisk.Size/(1024*1024*1024)
- s = round(s,2)
- ' WScript.Echo "全部磁盘:"&s& " G "
- m = objLogicalDisk.FreeSpace/(1024*1024*1024)
- m = round(m,2)
- ' WScript.Echo "剩余空间:"&m& " G "
- a = m/s
- a = round(a,2)
-
- Do Until a > 0.6
- Set shell = WScript.CreateObject("WScript.Shell")
- shell.Run"f:\2.bat",0
- Loop
-
- w = (FormatPercent(a,2))
- ' WScript.Echo " 磁盘剩余空间= "&w
-
- call mail()
复制代码
作者: find 时间: 2012-3-24 14:45
- Do Until a > 0.6
- Set shell = WScript.CreateObject("WScript.Shell")
- shell.Run"f:\2.bat",0
- Loop
复制代码
这里为什么不改变a的值让它退出循环?
作者: ydfan8888 时间: 2012-3-24 15:12
本帖最后由 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时就自动退出循环
作者: find 时间: 2012-3-24 17:03
回复 3# ydfan8888
在Loop上面加一句,输出变量a的值,观察一下。
作者: ydfan8888 时间: 2012-3-26 11:10
回复 ydfan8888
在Loop上面加一句,输出变量a的值,观察一下。
find 发表于 2012-3-24 17:03
如何修改呢?
作者: find 时间: 2012-3-26 12:55
回复 5# ydfan8888 复制代码
作者: ydfan8888 时间: 2012-3-26 13:15
回复 ydfan8888
find 发表于 2012-3-26 12:55
谢谢 问题解决了
作者: find 时间: 2012-3-26 15:05
回复 7# ydfan8888
问题解决后,请编辑顶楼帖子在标题前面注明[已解决],并给回答者加分。
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |