VBS Script Modification Pt2

Hello Experts,

An expert helped compile the following text. However, when the commands are executed they are run one at a time, but I would like the commands to full complete before moving to another tab. I've already had help with a similar issue and all I would like is to have the similar issue applied to this situation.

So, the following is the script that I would like modified:

# $language = "VBScript"
# $interface = "1.0"
' SendToAll.vbs

Sub Main()
   
    if Not crt.Session.Connected then
        szSession = crt.Dialog.Prompt("Enter session:", "", "", False)
        if szSession = "" then exit sub
   
        crt.Session.ConnectInTab("/S " & szSession)
        crt.Session.ConnectInTab("/S " & szSession)
        crt.Session.ConnectInTab("/S " & szSession)
    end if

    ' Find out what should be sent to all tabs
    szCommand = crt.Dialog.Prompt("Enter command to be sent to all tabs:", _
                                  "Send To All Connected Tabs", "ls", False)
    if szCommand = "" then exit sub
   
    If crt.Dialog.MessageBox(_
        "Are you sure you want to send the following command to " & _
        "__ALL__ tabs?" & vbcrlf & vbcrlf & szCommand, _
        "Send Command To All Tabs - Confirm", _
        vbyesno) <> vbyes then exit sub
   
    ' Connect to each tab in order from left to right, issue a command, and
    ' then disconnect...
    aryCmds = Split(szCommand, "|")

    For Each strOneCmd In aryCmds
        For nIndex = 1 to crt.GetTabCount
            Set objCurrentTab = crt.GetTab(nIndex)
            objCurrentTab.Activate
            if objCurrentTab.Session.Connected = True then
                crt.Sleep 500
                objCurrentTab.Screen.Send strOneCmd & vbcr
                crt.Sleep 1000
            end if
        Next
    Next
   
    MsgBox "The following command was sent to all connected tabs:" & vbcrlf & _
        vbcrlf & szCommand

End Sub
                 

The following is the script that I would like applied to the above. The expert that helped with the following script is called Shift-3 but I'm not sure if he's going to be available;


# $language = "VBScript"
# $interface = "1.0"
' SendToAll.vbs

Sub Main()
   
    if Not crt.Session.Connected then
        szSession = crt.Dialog.Prompt("Enter session:", "", "", False)
        if szSession = "" then exit sub
   
        crt.Session.ConnectInTab("/S " & szSession)
        crt.Session.ConnectInTab("/S " & szSession)
        crt.Session.ConnectInTab("/S " & szSession)
    end if
   
    arrCommands = Array("term len 0", "show run", "show ip inte brief", "show cdp neigh",_
        "show spanning-tree summary", "show vlan-switch brief", "show spanning-tree brief",_
        "show spanning-tree uplinkfast", "show spanning-tree blockedports",_
        "show vtp status", "show interfaces trunk", "show standby brief", "show ip route",_
        "show ip ospf interface", "show ip ospf neigh", "show ip ospf",_
        "show ip ospf summary-address", "show ip ospf border-routers", "show ip bgp",_
        "show ip bgp summary", "show ip bgp neighbor", "show ip bgp vpnv4 all",_
        "show ip cef summary")

    ' Send commands to all tabs
    ' Connect to each tab in order from left to right, issue all commands, and
    ' then disconnect...
    For nIndex = 1 to crt.GetTabCount
        Set objCurrentTab = crt.GetTab(nIndex)
        objCurrentTab.Activate
            
        If objCurrentTab.Session.Connected = True Then
            For Each strCommand In arrCommands
                crt.Sleep 500
                objCurrentTab.Screen.Send strCommand & vbcr
                crt.Sleep 1000
            Next
        End If
    Next
End Sub
                                           

As you can see the script by shift-3 allows the commands to be fully completed before moving to the next tab. I would like that applied to the new script.

I hope that makes sense.

Cheers
cpatte7372Asked:
Who is Participating?
 
cpatte7372Author Commented:
As I haven't heard from any experts, I'm going to assume that its because I haven't explained myself well enough, as I'm sure there experts that can help me out here.

So, the script is used on and application called SecureCRT.

When the script run and I enter the commands, show a|show b|show c instead of executing all three commands in one shot the script will execute one after the other for each tab that I may have open. So if I have four tabs open in the applicaton the command once for each tab, however I would like it run all the commands in one show for each tab

I added a script that I thought might help an expert help me, but I still haven't had any response.


The script that needs modification is:

# $language = "VBScript"
# $interface = "1.0"
' SendToAll.vbs

Sub Main()
   
    if Not crt.Session.Connected then
        szSession = crt.Dialog.Prompt("Enter session:", "", "", False)
        if szSession = "" then exit sub
   
        crt.Session.ConnectInTab("/S " & szSession)
        crt.Session.ConnectInTab("/S " & szSession)
        crt.Session.ConnectInTab("/S " & szSession)
    end if

    ' Find out what should be sent to all tabs
    szCommand = crt.Dialog.Prompt("Enter command to be sent to all tabs:", _
                                  "Send To All Connected Tabs", "ls", False)
    if szCommand = "" then exit sub
   
    If crt.Dialog.MessageBox(_
        "Are you sure you want to send the following command to " & _
        "__ALL__ tabs?" & vbcrlf & vbcrlf & szCommand, _
        "Send Command To All Tabs - Confirm", _
        vbyesno) <> vbyes then exit sub
   
    ' Connect to each tab in order from left to right, issue a command, and
    ' then disconnect...
    aryCmds = Split(szCommand, "|")

    For Each strOneCmd In aryCmds
        For nIndex = 1 to crt.GetTabCount
            Set objCurrentTab = crt.GetTab(nIndex)
            objCurrentTab.Activate
            if objCurrentTab.Session.Connected = True then
                crt.Sleep 500
                objCurrentTab.Screen.Send strOneCmd & vbcr
                crt.Sleep 1000
            end if
        Next
    Next
   
    MsgBox "The following command was sent to all connected tabs:" & vbcrlf & _
        vbcrlf & szCommand

End Sub

Open in new window



Your help will be greatly appreciated....

Cheers

Carlton
0
 
cpatte7372Author Commented:
So Experts,

I think the section of the script I needed to be applied to the new script is the following:

' Send commands to all tabs
    ' Connect to each tab in order from left to right, issue all commands, and
    ' then disconnect...
    For nIndex = 1 to crt.GetTabCount
        Set objCurrentTab = crt.GetTab(nIndex)
        objCurrentTab.Activate
           
        If objCurrentTab.Session.Connected = True Then
            For Each strCommand In arrCommands
                crt.Sleep 500
                objCurrentTab.Screen.Send strCommand & vbcr
                crt.Sleep 1000
            Next
        End If
    Next
End Sub
                       

I think

Cheers
0
 
cpatte7372Author Commented:
I should also mention that script is be run an application called SecureCRT.

Cheers
0
 
Meir RivkinFull stack Software EngineerCommented:
what is the error?
which line>?
0
 
cpatte7372Author Commented:
I figured out the solution myself
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.