返回列表 发帖

[问题求助] [已解决]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()COPY
1

评分人数

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

Do Until a > 0.6
Set shell = WScript.CreateObject("WScript.Shell")
shell.Run"f:\2.bat",0
LoopCOPY
这里为什么不改变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
WScript.Echo aCOPY

TOP

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



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

TOP

回复 7# ydfan8888


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

TOP

返回列表