I'm trying to figure out how to make multiple events happen with just one condition using .vbs. (Here I attempted to use the case statement.) Is there a such command, or do I have to rewrite the command for every line? (This is to be typed on notepad by having it already activated in previous lines of code.)
msgbox("I was woundering how old you are.")
age=inputbox("Type age here.",,"")
Select Case age
Case age>24
x=age-24
WshShell.SendKeys "I see you are "&x&" years older than me."
WshShell.SendKeys "{ENTER}"
Case age<24
x=24-age
WshShell.SendKeys "I see you are "&x&" years younger than me."
WshShell.SendKeys "{ENTER}"
Case age=24
WshShell.SendKeys "Wow were the same age!"
WshShell.SendKeys "{ENTER} "
End Select
I think you are looking for Select Case True
, an enhanced use of the Select Case
switch:
age = inputbox("I was wondering how old you are.")
Select Case True
' first handle incorrect input
Case (not IsNumeric(age))
WshShell.SendKeys "You silly, you have to enter a number.{ENTER}"
' You can combine cases with a comma:
Case (age<3), (age>120)
WshShell.SendKeys "No, no. I don't think that is correct.{ENTER}"
' Now evaluate correct cases
Case (age>24)
WshShell.SendKeys "I see you are " & age - 24 & " years older than me.{ENTER}"
Case (age<24)
WshShell.SendKeys "I see you are " & 24 - age &" years younger than me.{ENTER}"
Case (age=24)
WshShell.SendKeys "Wow were the same age!{ENTER}"
' Alternatively you can use the Case Else to capture all rest cases
Case Else
' But as all other cases handling the input this should never be reached for this snippet
WshShell.SendKeys "Woah, how do you get here? The Universe Collapse Sequence is now initiated.{ENTER}"
End Select
I put in some extra cases to show you the power of this enhanced switch. In contrary to If a And b Then
statements, the cases with comma's are shortcircuited.
Encapsulate the redundant code in a procedure or function. Also a different control structure might be better suited for the kind of check you're applying:
If age>24 Then
TypeResponse "I see you are " & (age-24) & " years older than me."
ElseIf age<24 Then
TypeResponse "I see you are " & (24-age) & " years younger than me."
ElseIf age=24 Then
TypeResponse "Wow were the same age!"
End If
Sub TypeResponse(text)
WshShell.SendKeys text & "{ENTER}"
End Sub
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With