首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >像是去哪里?

像是去哪里?
EN

Stack Overflow用户
提问于 2016-06-23 01:07:12
回答 1查看 218关注 0票数 0

我目前正在为我做的一些vbs脚本做一个简单愚蠢的UI(用户界面)。我刚添加了一个部分,在开始时它会询问用户的名字。我的问题是,每次我使用这个“后退”选项转到上一个“标签”时,它都会重新询问你的名字。我已经寻找了许多不同的方法来让它工作,但我做不到,我找不到让循环/出口的东西工作的方法。我尝试将name脚本分开,以便它在开始时运行它,当你返回到主脚本时,它会转到主脚本。但这意味着我不会在第二个脚本中知道它们的名字,因为它没有变量值。这是脚本!

代码语言:javascript
复制
Dim Input
Dim Input1
Dim Input2
Dim Input3
Dim InputName
InputName = Inputbox("Please Enter Your Name", "Name")
Input = Inputbox("Weclome " & InputName & "" & vbNewLine & "Choose One Of The Options!" & vbNewLine & "" & vbNewLine & "Information" & vbNewLine & "Cool" & vbNewLine & "Hacks" & vbNewLine & "Quit", "Solus")
If Input = "Information" Then
    Input1 = Inputbox("Here's The Information!" & vbNewLine & "" & vbNewLine & "Info" & vbNewLine & "Speech" & vbNewLine & "Back" & vbNewLine & "Quit", "Information")
    If Input1 = "Info" Then
        Set WshShell = WScript.CreateObject("WScript.Shell")
        WshShell.Run "C:\Users\Owner\Desktop\Solus\Information\Info.txt"
        Set WshShell = WScript.CreateObject("WScript.Shell")
        WshShell.Run "C:\Users\Owner\Desktop\Solus\Solus.vbs"
    ElseIf Input1 = "Speech" Then
        Set WshShell = WScript.CreateObject("WScript.Shell")
        WshShell.Run "C:\Users\Owner\Desktop\Solus\Information\Speech.vbs"
        Set WshShell = WScript.CreateObject("WScript.Shell")
        WshShell.Run "C:\Users\Owner\Desktop\Solus\Solus.vbs"
    ElseIf Input1 = "Back" Then
        Set WshShell = WScript.CreateObject("WScript.Shell")
        WshShell.Run "C:\Users\Owner\Desktop\Solus\Solus.vbs"
    ElseIf Input1 = "Quit" Then
        Wscript.Quit
    Else
        msgbox("Please Enter One Of The Options Next Time!")
        Set WshShell = WScript.CreateObject("WScript.Shell")
        WshShell.Run "C:\Users\Owner\Desktop\Solus\Solus.vbs"
    End If
ElseIf Input = "Cool" Then
    Input2 = Inputbox("Here's Some Scripts!" & vbNewLine & "" & vbNewLine & "Abracadabra" & vbNewLine & "Calculator" & vbNewLine & "Matrix" & vbNewLine & "Back" & vbNewLine & "Quit", "Cool")
    If Input2 = "Abracadabra" Then
        Set WshShell = WScript.CreateObject("WScript.Shell")
        WshShell.Run "C:\Users\Owner\Desktop\Solus\Cool\Abracadabra.vbs"
    ElseIf Input2 = "Calculator" Then
        Set WshShell = WScript.CreateObject("WScript.Shell")
        WshShell.Run "C:\Users\Owner\Desktop\Solus\Cool\Calculator.vbs"
    ElseIf Input2 = "Matrix" Then
        Set WshShell = WScript.CreateObject("WScript.Shell")
        WshShell.Run "C:\Users\Owner\Desktop\Solus\Cool\Matrix.bat"
    ElseIf Input2 = "Back" Then
        Set WshShell = WScript.CreateObject("WScript.Shell")
        WshShell.Run "C:\Users\Owner\Desktop\Solus\Solus.vbs"
    ElseIf Input2 = "Quit" Then
        Wscript.Quit
    Else
        msgbox("Please Enter One Of The Options Next Time!")
        Set WshShell = WScript.CreateObject("WScript.Shell")
        WshShell.Run "C:\Users\Owner\Desktop\Solus\Solus.vbs"
    End If
ElseIf Input = "Hacks" Then
    Input3 = Inputbox("Here's Some Hacks!" & vbNewLine & "" & vbNewLine & "Failure" & vbNewLine & "Haxs" & vbNewLine & "Rekt" & vbNewLine & "Spam" & vbNewLine & "TheOnly" & vbNewLine & "Back" & vbNewLine & "Quit", "Hacks")
    If Input3 = "Failure" Then
        Set WshShell = WScript.CreateObject("WScript.Shell")
        WshShell.Run "C:\Users\Owner\Desktop\Solus\Hacks\Failure.vbs"
        Set Wsh Shell = WScript.CreateObject("WScript.Shell")
        WshShell.Run "C:\Users\Owner\Desktop\Solus\Solus.vbs"
    ElseIf  Input3 = "Hacks" Then
        Set WshShell = WScript.CreateObject("WScript.Shell")
        WshShell.Run "C:\Users\Owner\Desktop\Solus\Hacks\Haxs.vbs"
        Set WshShell = WScript.CreateObject("WScript.Shell")
        WshShell.Run "C:\Users\Owner\Desktop\Solus\Solus.vbs"
    ElseIf Input3 = "Rekt" Then
        Set WshShell = WScript.CreateObject("WScript.Shell")
        WshShell.Run "C:\Users\Owner\Desktop\Solus\Hacks\Rekt.vbs"
        Set WshShell = WScript.CreateObject("WScript.Shell")
        WshShell.Run "C:\Users\Owner\Desktop\Solus\Solus.vbs"
    ElseIf Input3 = "Back" Then
        Set WshShell = WScript.CreateObject("WScript.Shell")
        WshShell.Run "C:\Users\Owner\Desktop\Solus\Solus.vbs"
    ElseIf Input3 = "Spam" Then
        Set WshShell = WScript.CreateObject("WScript.Shell")
        WshShell.Run "C:\Users\Owner\Desktop\Solus\Hacks\Spam.bat"
        Set WshShell = WScript.CreateObject("WScript.Shell")
        WshShell.Run "C:\Users\Owner\Desktop\Solus\Solus.vbs"
    ElseIf Input3 = "TheOnly" Then
        Set WshShell = WScript.CreateObject("WScript.Shell")
        WshShell.Run "C:\Users\Owner\Desktop\Solus\Solus.vbs"
        Set WshShell = WScript.CreateObject("WScript.Shell")
        WshShell.Run "C:\Users\Owner\Desktop\Solus\Solus.vbs"
    ElseIf Input3 = "Quit" Then
        Wscript.Quit
    Else
        msgbox("Please Enter One Of The Options Next Time!")
        Set WshShell = WScript.CreateObject("WScript.Shell")
        WshShell.Run "C:\Users\Owner\Desktop\Solus\Solus.vbs"
    End If
ElseIf Input = "Quit" Then
    Wscript.Quit
Else
    msgbox("Please Enter One Of The Options Next Time!")
    Set WshShell = WScript.CreateObject("WScript.Shell")
    WshShell.Run "C:\Users\Owner\Desktop\Solus\Solus.vbs"
End If

我是如何让"Back“选项起作用的,那就是重新运行程序,这样它就会从头开始。将" back“添加到主脚本后,它将是第一件要运行的事情,并且会在每次返回时发生。这是我不能拥有的如果我决定将name部分分开,这样它就不会运行,主脚本将丢失name变量,不能使用它,它将是无用的。我是新来的,如果我犯了一些错误,我很抱歉。提前感谢!BTH

EN

回答 1

Stack Overflow用户

发布于 2016-06-23 01:25:38

可以使用Goto语句,但通常认为使用它是不好的做法,因为它会使您的代码变得像意大利面一样。或者,循环在这里是一个很好的方法。收集名称后,您将继续循环,直到用户在外部对话框中输入"Quit“:

代码语言:javascript
复制
Dim Input
Dim Input1
Dim Input2
Dim Input3
Dim InputName

InputName = Inputbox("Please Enter Your Name", "Name")
Do While Input <> "Quit"
    Input = Inputbox("Weclome " & InputName & "" & vbNewLine & "Choose One Of The Options!" & vbNewLine & "" & vbNewLine & "Information" & vbNewLine & "Cool" & vbNewLine & "Hacks" & vbNewLine & "Quit", "Solus")

    If Input = "Information" Then

        Input1 = Inputbox("Here's The Information!" & vbNewLine & "" & vbNewLine & "Info" & vbNewLine & "Speech" & vbNewLine & "Back" & vbNewLine & "Quit", "Information")

        If Input1 = "Info" Then
            Set WshShell = WScript.CreateObject("WScript.Shell")
            WshShell.Run "C:\Users\Owner\Desktop\Solus\Information\Info.txt"
            Set WshShell = WScript.CreateObject("WScript.Shell")
            WshShell.Run "C:\Users\Owner\Desktop\Solus\Solus.vbs"
        ElseIf Input1 = "Speech" Then
            Set WshShell = WScript.CreateObject("WScript.Shell")
            WshShell.Run "C:\Users\Owner\Desktop\Solus\Information\Speech.vbs"
            Set WshShell = WScript.CreateObject("WScript.Shell")
            WshShell.Run "C:\Users\Owner\Desktop\Solus\Solus.vbs"
        ElseIf Input1 = "Back" Then
            'do nothing
        ElseIf Input1 = "Quit" Then
            Wscript.Quit
        Else
            msgbox("Please Enter One Of The Options Next Time!")
            Set WshShell = WScript.CreateObject("WScript.Shell")
            WshShell.Run "C:\Users\Owner\Desktop\Solus\Solus.vbs"
        End If

    ElseIf Input = "Cool" Then

        Input2 = Inputbox("Here's Some Scripts!" & vbNewLine & "" & vbNewLine & "Abracadabra" & vbNewLine & "Calculator" & vbNewLine & "Matrix" & vbNewLine & "Back" & vbNewLine & "Quit", "Cool")

        If Input2 = "Abracadabra" Then
            Set WshShell = WScript.CreateObject("WScript.Shell")
            WshShell.Run "C:\Users\Owner\Desktop\Solus\Cool\Abracadabra.vbs"
        ElseIf Input2 = "Calculator" Then
            Set WshShell = WScript.CreateObject("WScript.Shell")
            WshShell.Run "C:\Users\Owner\Desktop\Solus\Cool\Calculator.vbs"
        ElseIf Input2 = "Matrix" Then
            Set WshShell = WScript.CreateObject("WScript.Shell")
            WshShell.Run "C:\Users\Owner\Desktop\Solus\Cool\Matrix.bat"
        ElseIf Input1 = "Back" Then
            'do nothing
        ElseIf Input2 = "Quit" Then
            Wscript.Quit
        Else
            msgbox("Please Enter One Of The Options Next Time!")
            Set WshShell = WScript.CreateObject("WScript.Shell")
            WshShell.Run "C:\Users\Owner\Desktop\Solus\Solus.vbs"
        End If

    ElseIf Input = "Hacks" Then

        Input3 = Inputbox("Here's Some Hacks!" & vbNewLine & "" & vbNewLine & "Failure" & vbNewLine & "Haxs" & vbNewLine & "Rekt" & vbNewLine & "Spam" & vbNewLine & "TheOnly" & vbNewLine & "Back" & vbNewLine & "Quit", "Hacks")

        If Input3 = "Failure" Then
            Set WshShell = WScript.CreateObject("WScript.Shell")
            WshShell.Run "C:\Users\Owner\Desktop\Solus\Hacks\Failure.vbs"
            Set WshShell = WScript.CreateObject("WScript.Shell")
            WshShell.Run "C:\Users\Owner\Desktop\Solus\Solus.vbs"
        ElseIf  Input3 = "Hacks" Then
            Set WshShell = WScript.CreateObject("WScript.Shell")
            WshShell.Run "C:\Users\Owner\Desktop\Solus\Hacks\Haxs.vbs"
            Set WshShell = WScript.CreateObject("WScript.Shell")
            WshShell.Run "C:\Users\Owner\Desktop\Solus\Solus.vbs"
        ElseIf Input3 = "Rekt" Then
            Set WshShell = WScript.CreateObject("WScript.Shell")
            WshShell.Run "C:\Users\Owner\Desktop\Solus\Hacks\Rekt.vbs"
            Set WshShell = WScript.CreateObject("WScript.Shell")
            WshShell.Run "C:\Users\Owner\Desktop\Solus\Solus.vbs"
        ElseIf Input1 = "Back" Then
            'do nothing
        ElseIf Input3 = "Spam" Then
            Set WshShell = WScript.CreateObject("WScript.Shell")
            WshShell.Run "C:\Users\Owner\Desktop\Solus\Hacks\Spam.bat"
            Set WshShell = WScript.CreateObject("WScript.Shell")
            WshShell.Run "C:\Users\Owner\Desktop\Solus\Solus.vbs"
        ElseIf Input3 = "TheOnly" Then
            Set WshShell = WScript.CreateObject("WScript.Shell")
            WshShell.Run "C:\Users\Owner\Desktop\Solus\Solus.vbs"
            Set WshShell = WScript.CreateObject("WScript.Shell")
            WshShell.Run "C:\Users\Owner\Desktop\Solus\Solus.vbs"
        ElseIf Input3 = "Quit" Then
            Wscript.Quit
        Else
            msgbox("Please Enter One Of The Options Next Time!")
            Set WshShell = WScript.CreateObject("WScript.Shell")
            WshShell.Run "C:\Users\Owner\Desktop\Solus\Solus.vbs"
        End If
    Elseif Input = "Quit" Then
        'do nothing. While loop will exit
    Else
        msgbox("Please Enter One Of The Options Next Time!")
        Set WshShell = WScript.CreateObject("WScript.Shell")
        WshShell.Run "C:\Users\Owner\Desktop\Solus\Solus.vbs"
    End If
Loop
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37974357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档