#1
|
|||
|
|||
![]()
I was wondering if you guys have a suggestion for a better way of cycling through password.
My current script always hang at the if statement. Here is my code: Code:
prompt = "A:" currentTab = crt.GetScriptTab() password = ["wrongPass", "rightPass"] def main(): x = 0 currentTab.Screen.Synchronous = True currentTab.Screen.Send("kernel\r") while currentTab.Screen.WaitForString("assword:") == True: currentTab.Screen.Send(password[x]+"\r") if currentTab.Screen.WaitForString(prompt) == True: x = x + 1 currentTab.Screen.Send("kernel\r") else: break currentTab.Screen.Send("finished") main() Quote:
|
#2
|
||||
|
||||
WaitForString(), WaitForStrings(), and ReadString() only operate on data that has not yet been displayed to the Screen.
So, if something has already been displayed to the Screen, it's too late to try and branch on something else that you would then try and Wait for. If you expect to branch script code on a number of different strings that could appear on the Screen, then you must use WaitForStrings(string1, string2, string3, ...) and then branch on the value of the Screen.MatchIndex property (which tells you the left-to-right index -- or top-to-bottom index, depending on how you've structured your code -- of the string that WaitForStrings() found. This technique is demonstrated in the Jump Host - Handle Secondary Host Connection Attempts example script found in the script examples 'sticky'. --Jake
__________________
Jake Devenport VanDyke Software Technical Support YouTube Channel: https://www.youtube.com/vandykesoftware Email: support@vandyke.com Web: https://www.vandyke.com/support |
![]() |
Tags |
if statement , waitforstring |
Thread Tools | |
Display Modes | Rate This Thread |
|
|