Ниже приведен текущий сценарий, который у меня есть для моего текущего маленького проекта.

<job>
    <script language="VBScript">
    Option Explicit
    On Error Resume Next
    Dim WshShell
    set WshShell=CreateObject("WScript.Shell")
    WshShell.run "cmd.exe", 2
    WScript.Sleep 50
    'Send commands to the window as needed - IP and commands need to be customized
    'Step 1 - Telnet to remote IP'
    WshShell.SendKeys "telnet 192.168.0.1 23"
    WshShell.SendKeys ("{Enter}")
    WScript.Sleep 50
    WshShell.SendKeys ("root{Enter}")
    WScript.Sleep 50
    WshShell.SendKeys ("foo{Enter}")
    WScript.Sleep 50
    WshShell.SendKeys ("cd /work/Tools{Enter}")
    WScript.Sleep 50
    WshShell.SendKeys ("control_videosignal.sh -fbas 1{Enter}")
    WScript.Sleep 50 
    WshShell.SendKeys "exit{ENTER}" 'close telnet session' 
    WshShell.SendKeys "{ENTER}" 'get command prompt back 
    WScript.Sleep 50 
    WshShell.SendKeys "exit{ENTER}" 'close cmd.exe
    WshShell.SendKeys "{ENTER}" 'get command prompt back 
    WScript.Sleep 1000
    WshShell.SendKeys "{ENTER}" 'get command prompt back 
    WScript.Sleep 200 
    WshShell.SendKeys "exit{ENTER}" 'close cmd.exe
    </script>
    </job

В результате он останавливается на этом этапе.

Останавливается здесь

Я просто хочу закрыть текущее окно cmd.exe при выходе из скрипта.

Любая помощь приветствуется.

WshShell.SendKeys ("control_videosignal.sh -fbas 1{Enter}")
WScript.Sleep 50
WshShell.SendKeys ("{Enter}")
WScript.Sleep 200
WshShell.SendKeys "^{C}"
WScript.Sleep 200
WshShell.SendKeys ("exit{Enter}")
WScript.Sleep 3000
WScript.Quit
</script>
</job>

Соединение просто закрывается без выполнения.

1 ответ1

1

Похоже, вы застряли в Telnet, который использует команду quit а не exit я полагаю.

Попробуйте использовать:

WshShell.SendKeys "quit{ENTER}"

или же

WshShell.SendKeys "^{C}"

Чтобы убедиться, что вы правильно вышли из Telnet, перед exit в cmd .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .