Vbscript 如果条件不符合要求
编写一个VB脚本来监视电池百分比。如果大于95,则拔下插头。如果<20,则插入充电器或休眠等。当电池电量低于20%时,充电器会弹出一个插头…虽然在10秒内系统已插入,但它会转到Vbscript 如果条件不符合要求,vbscript,Vbscript,编写一个VB脚本来监视电池百分比。如果大于95,则拔下插头。如果
else
part并休眠。它没有进入“系统不会休眠”部分
hibernate.bat
是一个用于休眠Windows7的简单批处理脚本。
代码是一个永无止境的for
循环,其中do-while循环用于在shell脚本中复制“continue”。当电池电量达到20%时,插件充电器将有10秒的时间。如果充电,则必须转到下一个for循环迭代。未输入“如果充电”循环。为什么?
Set oLocator = CreateObject("WbemScripting.SWbemLocator")
Set oServices = oLocator.ConnectServer(".","root\wmi")
Set oResults = oServices.ExecQuery("select * from batteryfullchargedcapacity")
For Each oResult In oResults
iFull = oResult.FullChargedCapacity
Next
For i=1 To 10
Do
i=+2
Set oResults = oServices.ExecQuery("select * from batterystatus")
For Each oResult In oResults
iRemaining = oResult.RemainingCapacity
Charging = oResult.Charging
Discharging = oResult.Discharging
Next
iPercent = ((iRemaining / iFull) * 100) Mod 100
If Charging And (iPercent > 95) Then
MsgBox "Unplug Charger. Battery is at " & iPercent & "%", vbInformation, "Battery monitor"
ElseIf Discharging And (iPercent < 20) Then
MsgBox "Plug-in Charger. Battery is at " & iPercent & "%", vbInformation, "Battery monitor"
WScript.Sleep 10000 ' 10 sec
If Charging Then
CreateObject("WScript.Shell").Popup "System won't hibernate", 5, "Good News!!!"
Exit Do
Else
Set shell = CreateObject("WScript.Shell")
shell.CurrentDirectory = "C:\Users\abcd\Desktop"
CreateObject("WScript.Shell").Popup "System will hibernate", 5, "Hmm..."
shell.Run "hibernate.bat"
Exit For
End If
End If
Loop While False
Next
Set-oLocator=CreateObject(“WbemScripting.SWbemLocator”)
设置oServices=oLocator.ConnectServer(“.”,“root\wmi”)
Set-oResults=oServices.ExecQuery(“从电池容量中选择*)
对于oResults中的每个oResults
iFull=oResult.FullChargedCapacity
下一个
对于i=1到10
做
i=+2
Set-oResults=oServices.ExecQuery(“从batterystatus中选择*)
对于oResults中的每个oResults
iMaining=oResult.RemainingCapacity
充电=或结果充电
卸料=或结果卸料
下一个
iPercent=((iMaining/iFull)*100)模块100
如果充电和(iPercent>95),则
MsgBox“拔下充电器。电池位于”&iPercent&“%”,vbInformation,“电池监视器”
如果放电,则(iPercent<20)
MsgBox“插入式充电器。电池位于”&i电源和“%”,vbInformation,“电池监视器”
WScript.Sleep 10000'10秒
如果是收费的话
CreateObject(“WScript.Shell”)。弹出“系统不会休眠”,5,“好消息!!!”
退出Do
其他的
Set shell=CreateObject(“WScript.shell”)
shell.CurrentDirectory=“C:\Users\abcd\Desktop”
CreateObject(“WScript.Shell”)。弹出“系统将休眠”,5,“嗯…”
shell.Run“hibernate.bat”
退出
如果结束
如果结束
错误时循环
下一个
这是您的问题:
ElseIf Discharging And (iPercent < 20) Then
...
If Charging Then
...
Else
...
End If
End If
然后像这样使用它们:
Do
iPercent = ((GetRemainingCapacity / iFull) * 100) Mod 100
If IsCharging And (iPercent > 95) Then
...
ElseIf Not IsCharging And (iPercent < 20) Then
...
If IsCharging Then
...
Else
...
End If
End If
Loop While True
Do
iPercent=((GetRemainingCapacity/iFull)*100)模块100
如果放电且(iPercent>95),则
...
否则,如果不放电且(iPercent<20),则
...
如果是放电的话
...
其他的
...
如果结束
如果结束
在为真时循环
可能重复的扩口,作为重复关闭。
Do
iPercent = ((GetRemainingCapacity / iFull) * 100) Mod 100
If IsCharging And (iPercent > 95) Then
...
ElseIf Not IsCharging And (iPercent < 20) Then
...
If IsCharging Then
...
Else
...
End If
End If
Loop While True