I have written script to connect from my local machine to Jump server using secure crt. i was able to execute the script and capture the output into Msgbox, But unable to print it to console.
Below is the code which i have written.
#$language = "VBScript"
#$interface = "1.0"
Set objTab = crt.GetScriptTab
Set g_shell = CreateObject("WScript.Shell")
Public szData
crt.Sleep 6000
objTab.Screen.IgnoreEscape = True
objTab.Screen.Synchronous = True
Dim szCommand, szPrompt, nRow, szLogFileName, nIndex
Do
bCursorMoved = objTab.Screen.WaitForCursor(1)
Loop until bCursorMoved = False
nRow = objTab.Screen.CurrentRow
szPrompt = objTab.screen.Get(nRow, _
0, _
nRow, _
objTab.Screen.CurrentColumn - 1)
szPrompt = Trim(szPrompt)
crt.Screen.Synchronous = True
Dim pran
Sub Main
strVal = crt.Arguments(0)
crt.Screen.Send "pwd" & chr(13)
crt.Screen.WaitForString "[xyz@xlpv0002 ~]$"
crt.Screen.Send "sh test.sh" & chr(9) & chr(13)
**szData = CaptureOutputOfCommand("sh test.sh", "[xyz@xlpv0002 ~]") & vbCr**
'MsgBox(szData)
pran = szData
crt.Clipboard.Format = "CF_TEXT"
crt.Clipboard.Text = pran
crt.Dialog.MessageBox("Text is now in the clipboard: \n\n" + crt.Clipboard.Text)
'MessageBox.Show(szData)
If Not SendExpect("exit", "[xyz@xlpv0002 ~]") then exit sub
g_shell.Run "%comspec% /c taskkill /IM SecureCRT.exe /F"
End Sub
'=======================================================================
Function CaptureOutputOfCommand(szCommand, szPrompt)
if crt.Session.Connected <> True then
CaptureOutputOfCommand = "[ERROR: Not Connected.]"
exit function
end if
objTab.Screen.Send szCommand & vbcr
objTab.Screen.WaitForString vbcr
CaptureOutputOfCommand = objTab.Screen.ReadString(szPrompt)
End Function
'======================================================================
Function SendExpect(szSend, szExpect)
if objTab.Session.Connected <> True then exit function
objTab.Screen.Send szSend & vbcr
objTab.Screen.WaitForString szExpect
SendExpect = True
End Function
'========================================
I am capturing the script output into szData variable. Is there a way to print the same in the console?
You are already using the command
You just need to pass a valid command that will output to the console, if doing this on a Windows Server you should be able to use the Command Line program
ECHO
to output to the console.Output (untested, but should produce)
So you should just be able to do
Useful Links