2017-02-09 7 views
0

このコードを実行すると、パスワードが間違っている場合ループ内でVBScriptループを作成するには

varCheck=True 
Do While varCheck 
    Pass=InputBox("Enter Password") 
    Do 
     If IsEmpty(pass) Then 
      WScript.quit 
      Exit Do 
     End If 
     If Pass = "123" Then 
      varCheck=False 
      Exit Do 
     Else 
      varCheck=True 
      MsgBox("Wrong Password...Try Again") 
     End If 
    Loop 
Loop 

すると、それは、コードの先頭に再起動しない、それだけで延々と「間違ったパスワード...もう一度試してみてください」というメッセージボックスをループします。パスワードをもう一度聞かせるにはどうすればいいですか? (p.s.私はコーディングで初心者ですので、ご自身で説明してください。ありがとう!) 警告!私が前に言ったように、あなたがパスワードを間違えた場合、間違ったパスワードメッセージを無限にループします。

+1

あなたのmsgboxの後に「Exit Do」を挿入しようとしましたか? – Rich

答えて

2

あなたが探しているスクリプトは、私はmsgboxを完全に取り除き、InputBoxテキストに追加することをお勧めします。間違ったパスワードが入力された後、あなたの内側のループを壊すのを忘れたようです。だから、最初に戻ることはできませんでした。

varCheck=True 
Dim StarterText: StarterText = "" 
Do While varCheck 
    Pass=InputBox(StarterText & "Enter Password") 
    Do 
     If IsEmpty(pass) Then 
      WScript.quit 
      Exit Do 
     End If 
     If Pass = "123" Then 
      varCheck=False 
      Exit Do 
     Else 
      varCheck=True 
      StarterText = "Sorry, wrong password, try again: " 

      Exit Do '<-----this is what you forgot. 

     End If 
    Loop 
Loop 
+0

いくつかの初心者の質問。 startertextはmsgboxとどう違うのですか?また、Dimが何を意味するのか、それが何のために使われているのか/助けているのかを説明してください –

+0

startertextは、別のポップアップではなく、入力ボックスに「間違ったパスワード」メッセージが表示される点で異なります。それが個人的な好みの問題であるので、より良いStartertextとメッセージボックスはケースではありません。いずれかうまく動作します。 'Dim'は特定の変数に変数空間とメモリを割り当てます。 'Dim'の良い解説については、こちらをご覧ください - > http://www.vbsedit.com/html/87113e7d-b3d4-41c7-85c3-4b9925586707.asp – Rich

+0

startertext関数の詳細はどこで知ることができますか? –

関連する問題